最近在学习Spring Cloud ,在根据讲解实践Eureka Server的高可用时配置集群环境遇到的一些问题,总结一下:
1.首先创建一个Eureka Server的项目
2.配置系统的hosts,Windows系统的hosts的路径:C:\Windows\System32\drivers\etc\hosts,Linux及Mac OS 路径是/etc/hosts,添加 类似于下图,这里可能会出现没有操作权限的问题,可以先把文件复制出来改好后,覆盖一下
127.0.0.1 peer1
127.0.0.1 peer2
3.在application.yml中修改让2个节点相互注册:
spring:
application:
name: microservice-discovery-eureka-ha
---
spring:
profiles: peer1 # 指定profile=peer1
server:
port: 8761
eureka:
instance:
hostname: peer1 # 指定当profile=peer1时,主机名是peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/ # 将自己注册到peer2这个Eureka上面去
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
4.打包项目,在jar存放的位置,运行命令
java -jar microservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar microservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
5.访问浏览器:http://peer1:8761/可以看到注册列表数据,同理访问http://peer2:8762/
6.如果让一个服务同时注册到这两个EurekaServer上,则修改该服务的application.yml中 ,注册服务选择多个,启动该服务就可以看到这个服务在2个Eureka Server上都有注册。
eureka:
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/