springcloud Eureka 集群

Eureka 集群测试

开始学习springcloud体系,记录下相关笔记。配置集群过程,参考不少帖子,碰到出现available-replicas 为空的情况,在https://github.com/Netflix/eureka/issues/1008 找到解决办法

springcloud服务注册管理集群eureka

1、创建maven工程,添加eureka依赖,springboot2.1
在这注意里插入图片描述
注意spring-cloud-starter-netflix-eureka-server 的版本号需要添加,否则eureka的jar包有可能maven无法下载成功
2、启动类添加 EnableEurekaServer 注解
在这里插入图片描述
3、在resource目录添加application.yml 配置文件,编写集群配置信息

spring:
application:
name: eureka-server
profiles: discovery1
server:
port: 8761
eureka:
instance:
hostname: discovery1
client:
register-with-eureka: true
fetch-registry: true
preferIpAddress: false
serviceUrl:
defaultZone: http://discovery2:8762/eureka/,http://discovery3:8763/eureka/

spring:
application:
name: eureka-server
profiles: discovery2
server:
port: 8762
eureka:
instance:
hostname: discovery2
client:
register-with-eureka: true
fetch-registry: true
preferIpAddress: false
serviceUrl:
defaultZone: http://discovery1:8761/eureka/,http://discovery3:8763/eureka/

spring:
application:
name: eureka-server
profiles: discovery3
server:
port: 8763
eureka:
instance:
hostname: discovery3
client:
fetch-registry: true
register-with-eureka: true
preferIpAddress: false
serviceUrl:
defaultZone: http://discovery1:8761/eureka/,http://discovery2:8762/eureka/

注意,applicaton的name属性必须保持一致, name: eureka-server,出现available-replicas 为空就是该name属性不一致导致的,如非该问题导致的,注意检查application.yml文件格式是否正常,文件格式问题也会导致注册失败, 也有人说因为没有设置preferIpAddress: false,经验证不是这个原因,去掉该条件设置,也可以集群注册成功

4、修改hosts文件,映射ip
127.0.0.1 discovery1
127.0.0.1 discovery2
127.0.0.1 discovery3

5、3个服务配置在同一个文件中,在idea的启动配置里指定profiles应用不同配置 如下图:active profiles
启动3个服务后,访问浏览器
http://discovery1:8761/
http://discovery2:8762/
http://discovery3:8763/

即可看到服务互相完成注册,可用状态
在这里插入图片描述
在这里插入图片描述

代码示例地址:https://github.com/skylordmin/eurekacluster

猜你喜欢

转载自blog.csdn.net/FengZhongDeYuLing/article/details/83895076