多个注册中心,其实用不同的配置对应 不同的端口号注册就行了。
注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢?
server:
port: 8888 # 服务端口
eureka:
instance:
hostname: localhost # 设置主机名
client:
registerWithEureka: false # 是否向 Eureka 注册服务。该应用为服务注册中心,不需要自注册,设置为 false
fetchRegistry: false # 是否检索服务。该应用为服务注册中心,职责为注册和发现服务,无需检索服务,设置为 false
server:
waitTimeInMsWhenSyncEmpty: 0 # 设置同步为空时的等待时间。默认 5 * MINUTES
那么多个改怎么弄呢,你看上面有设置不允许自己注册自己,所有多个注册中心A和B....就应该相互注册
那就看看配置吧,
application.yml
spring:
profiles:
active: mars-8764 #按-后缀默认启动
application:
name: eureka-rigister-server
application-mars-8763.yml
server:
port: 8763 # 服务端口
eureka:
instance:
hostname: 127.0.0.1 # 设置主机名
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:8764/eureka/
register-with-eureka: false # 是否向 Eureka 注册服务。该应用为服务注册中心,不需要自注册,设置为 false
fetch-registry: false # 是否检索服务。该应用为服务注册中心,职责为注册和发现服务,无需检索服务,设置为 false
application-mars-8764.yml
server:
port: 8764
eureka:
instance:
hostname: 127.0.0.1
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:8763/eureka/
register-with-eureka: false
fetch-registry: false
你们看,默认启动mars-8764,所以jar install两次,修改active: mars-8764 为active: mars-8763再启动一次,这样就同时启动了2个注册中心,他们的之间维护的服务清单和实例会相互同步。
那么消费者的配置也得向多个注册中心注册,并且一个注册中心挂了,不会影响程序运行,这样可以实现注册中心集群
server:
port: 8765
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:8763/eureka/,http://127.0.0.1:8764/eureka/
#(注册中心地址,如果多个注册中心用逗号拼接,具体可以查源码)
spring:
application:
name: service-biz //服务名称