Eureka实现高可用

    技术2026-02-04  4

    Eureka作为注册中心,相信现在知道springcloud的小伙伴,自己都私下玩过这东东,但主要还是玩的单机版的。

    今天自己玩了下集群版,感觉坑真的很多,不仅仅是配置问题,更甚者有的问题百度的答案五花八门,当然,我这里也会变成这五花八门中的一门,哈哈哈。。。。。。

    先说思路:

    假设现在启动三台服务器(这里由于是本地,都用127.0.0.1 有服务器的小伙伴当然可以直接换成不同的ip,这没影响),每一台跑一个Eureka项目。

    例如:A、B、C三个程序,要实现集群,那么就要互相注册,A想B和C注册,同理B向A和C注册,C向A和B注册,这里如要一个JAR包完全够用:

    <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>

    这里的配置,最主要的还是配置文件,

    spring: application: name: eureka-server --- server: port: 7001 spring: #隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的 profiles: test eureka: server: eviction-interval-timer-in-ms: 5000 instance: hostname: eureka01 #prefer-ip-address: false client: #当做服务注册自己 register-with-eureka: true #拉取注册信息 fetch-registry: true service-url: defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/ --- server: port: 7003 spring: profiles: dev eureka: server: eviction-interval-timer-in-ms: 5000 instance: hostname: eureka02 #prefer-ip-address: false client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/ --- server: port: 7004 spring: profiles: prod eureka: server: eviction-interval-timer-in-ms: 5000 instance: hostname: eureka03 #prefer-ip-address: false client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/ ---

    详细解释一下:

    1.

    spring: application: name: eureka-server

    设置服务名的,这里集群就用一个名字就行,这里叫eureka-server。

    就是这里的名字,如果配置了多个,那么现实的就是多条。

    2.

    eureka: server: eviction-interval-timer-in-ms: 5000 instance: hostname: eureka01 #prefer-ip-address: false

    这里的hostname,优先级低于application.name,但是这里的它还不能省略,注册的时候需要用到hostname;

    3.

    client: #当做服务注册自己 register-with-eureka: true #拉取注册信息 fetch-registry: true

    这里要注意,单机的时候,这里都是false,集群要开启,要不然就没法互相注册拉取注册信息了。

    4.配置映射:

    C:\Windows\System32\drivers\etc

    路径下找到host文件,添加:

    127.0.0.1 eureka01 127.0.0.1 eureka02 127.0.0.1 eureka03

    这样就完成整个注册过程了,注意这里的名字要跟hostname的名字一致。

    这样就注册成功了。集群注册中心完成。

    补:这里与搭建无关,只是讲解下一个文件中配置三个端口,需要使用“---”进行隔开,启动时,以idea为例:

    点开之后如下图:

    点击复制,然后修改Active Profiles,这里的值就是配置文件中

    spring: #隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的 profiles: test

    跟这里的值是对应的,然后选择启动即可测试。

    Processed: 0.026, SQL: 9