为啥要为注册中心集群:
为了让程序运行更安全,如果一个注册中心挂了,另一个能顶上,不会让整个服务挂。
古语云:鸡蛋不要放在同一个笼子里
在注册中心的yml中添加多个服务配置,启动两次
每次启动都需要修改服务配置名
第一次用【peer2】
第二次用【peer1】
然后在其他微服务中的yml配置文件中修改注册中心地址
#指定注册中心地址
eureka:
client:
serviceUrl:
defaultZone: http://peer2:1001/eureka/,http://peer1:1000/eureka/
这是偷懒的做法
spring:
profiles:
active: peer2 #服务配置名
---
spring:
profiles: peer1
eureka:
instance:
hostname: peer1
client:
registerWithEureka: false #禁止注册中心向自己注册
fetchRegistry: false #禁止注册中心拉取注册地址清单
serviceUrl:
defaultZone: http://peer2:1001/eureka/
server:
port: 1000
---
spring:
profiles: peer2
eureka:
instance:
hostname: peer2
client:
registerWithEureka: false #禁止注册中心向自己注册
fetchRegistry: false #禁止注册中心拉取注册地址清单
serviceUrl:
defaultZone: http://peer1:1000/eureka/
server:
port: 1001
下面用不偷懒的方法
创建两个注册中心模块。
第一个yml配置填写
spring:
profiles: peer1
eureka:
instance:
hostname: peer1
client:
registerWithEureka: false #禁止注册中心向自己注册
fetchRegistry: false #禁止注册中心拉取注册地址清单
serviceUrl:
defaultZone: http://peer2:1001/eureka/ #两个注册中心相互注册
server:
port: 1000
第二个yml配置填写
spring:
profiles: peer2
eureka:
instance:
hostname: peer2
client:
registerWithEureka: false #禁止注册中心向自己注册
fetchRegistry: false #禁止注册中心拉取注册地址清单
serviceUrl:
defaultZone: http://peer1:1000/eureka/ #两个注册中心相互注册
server: port: 1001
然后在其他微服务中的yml配置文件中修改注册中心地址
#指定注册中心地址
eureka:
client:
serviceUrl:
defaultZone: http://peer2:1001/eureka/,http://peer1:1000/eureka/