SpringCloud系列(10)--Eureka集群原理及搭建

前言:当注册中心只有一个,而且当这个注册中心宕机了,就会导致整个服务环境不可用,所以我们需要搭建Eureka注册中心集群来实现负载均衡+故障容错

Eureka架构原理图

1、Eureka集群原理
2、创建Eureka Server端服务注册中心模块
(1)在父工程下新建模块
(2)选择模块的项目类型为Maven并选择模块要使用的JDK版本
(3)填写子模块的名称,然后点完成即可完成创建

效果图:

(4)修改eureka-server7002子模块的pom.xml文件,然后reolad一下,下载依赖

例:

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springcloud01</artifactId>
        <groupId>com.ken.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server7002</artifactId>

    <dependencies>
        <!--以下依赖都没写版本号,没写版本号的情况下会引用父项目的版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!--lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入自己定义的api调用包,可以使用Payment模块的entity-->
        <dependency>
            <groupId>com.ken.springcloud</groupId>
            <artifactId>api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--Eureka Server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>
3、为子模块添加名为application的yml配置文件(注:yml是官方推荐的配置文件格式,最好使用yml文件而不是properties文件)

效果图:


如果application.yml不是绿色的,而是红色的,可以尝试install当前Maven工程,如果还不行可以尝试清除Idea的缓存


4、修改hosts文件,将映射配置进hosts文件里
(1)进入C:\Windows\System32\drivers\etc文件夹,找到hosts文件
(2)修改hosts文件,添加以下映射
XML 复制代码
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com

效果图:

5、分别修改eureka-server7001模块和eureka-server7002模块的application.yml配置文件
(1)修改eureka-server7001的yml配置
XML 复制代码
server:
  port: 7001
eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7001.com
  client:
    #false表示不向服务中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,只需要维护服务实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka/

效果图:

(2)修改eureka-server7002的yml配置
XML 复制代码
server:
  port: 7002
eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7002.com
  client:
    #false表示不向服务中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,只需要维护服务实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka/

效果图:

6、为eureka-server7002子模块新建一个主启动类,类名输入com.ken.springcloud.EurekaMain,然后创建即可

效果图:

7、编写为eureka-server7002子模块的主启动类
java 复制代码
package om.ken.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
//标注为Eureka Server(服务注册中心)
@EnableEurekaServer
public class EurekaMain {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain.class, args);
    }
}

效果图:

8、分别启动eureka-server7001子模块和eureka-server7002子模块,然后分别进入http://localhost:7001/http://localhost:7002/或者分别进入http://eureka7001.com:7001/http://eureka7002.com:7002/查看是否成功相互注册,进入页面后如果发现互相注册对方,则证明eureka集群搭建成功

eureka7001的效果图:

从图里可以看到eureka7001里注册了eureka7002

或者

eureka7002的效果图:

从图里可以看到eureka7002里注册了eureka7001

或者

相关推荐
@寄居蟹14 小时前
Docker 命令大全
docker·容器·eureka
sniper_fandc21 小时前
Spring Cloud系列—SkyWalking告警和飞书接入
spring cloud·skywalking
abigalexy2 天前
深入图解Spring Cloud底层设计
spring·spring cloud
AI扶我青云志2 天前
Milvus 安装和启动指南
人工智能·云原生·eureka·大模型
楠有枝3 天前
普通用户使用docker命令
spring cloud·docker·eureka
孤狼程序员3 天前
【Spring Cloud 微服务】2.守护神网关Gateway
spring cloud·微服务·gateway
朱皮皮呀3 天前
Spring Cloud——服务注册与服务发现原理与实现
运维·spring cloud·eureka·服务发现·php
Peter·Pan爱编程4 天前
Docker在Linux中安装与使用教程
linux·docker·eureka
朱皮皮呀4 天前
微服务流量分发核心:Spring Cloud 负载均衡解析
spring cloud·微服务·负载均衡
春人.5 天前
PortainerCE 跨云管理:cpolar 内网穿透服务实现多环境统一控制
云原生·eureka