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

或者

相关推荐
瑶山6 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
大雨淅淅7 小时前
Eureka从入门到精通:开启微服务架构的钥匙
微服务·云原生·eureka·架构
oMcLin7 小时前
2025年必备的Docker命令指南与实战示例
docker·容器·eureka
qq_404643347 小时前
Eureka 核心概念
微服务·eureka
码字的字节7 小时前
Spring Cloud服务注册与发现(一):手把手搭建Eureka Server,详解高可用配置
spring·spring cloud·eureka
AI架构全栈开发实战笔记7 小时前
Eureka 在大数据环境中的性能优化技巧
大数据·ai·eureka·性能优化
大厂资深架构师7 小时前
Spring Cloud Eureka在后端系统中的服务剔除策略
spring·spring cloud·ai·eureka
AI架构全栈开发实战笔记7 小时前
Eureka 对大数据领域服务依赖关系的梳理
大数据·ai·云原生·eureka
岁岁种桃花儿8 小时前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
SoleMotive.13 小时前
谢飞机爆笑面经:Java大厂3轮12问真题拆解(Redis穿透/Kafka分区/MCP Agent)
redis·spring cloud·kafka·java面试·mcp