Eureka高可用实际上是将自己作为服务向其他注册中心注册自己,这样就可以形成一组相互注册的注册中心,从而实现服务清单的互相同步,达到高可用效果。
一、搭建两个互相调用的注册中心
###eureka 服务端口号
server:
port: 8100
###服务名称(服务注册到eureka名称)
spring:
application:
name: app-eureka
eureka:
instance:
hostname: 127.0.0.1
###客户端调用地址
client:
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:9100/eureka/
###因为该应用为注册中心,不会注册自己(集群的时候需要为true)
register-with-eureka: true
###因为自己为注册中心 ,不会去在该应用中的检测服务(false),需要搭建高可用时为true
fetch-registry: true
###eureka 服务端口号
server:
port: 9100
###服务名称(服务注册到eureka名称)
spring:
application:
name: app-eureka
eureka:
instance:
hostname: 127.0.0.1
###客户端调用地址
client:
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8100/eureka/
###因为该应用为注册中心,不会注册自己(集群的时候需要为true)
register-with-eureka: true
###因为自己为注册中心 ,不会去在该应用中的检测服务(false),需要搭建高可用时为true
fetch-registry: true
注意两个的spring.application.name 必须为一致,eureka.client.register-with-eureka和eureka.client.fetch-registry必须为true
二、客户端如何调用?
非常简单,
###eureka 服务端口号
server:
port: 8000
###服务注册名称
###服务名称(服务注册到eureka名称)
spring:
application:
name: app-member
eureka:
instance:
hostname: 127.0.0.1
###服务注册到eureka地址
client:
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8100/eureka/,http://${eureka.instance.hostname}:9100/eureka/
###注册到eureka上
register-with-eureka: true
###需要检索服务
fetch-registry: true
只需将eureka.client.serviceUrl.defaultZone 配置上两个 注册中心的地址