前面我们实现服务注册与发现,并实现在负载匀衡的接口调用。但是,我们的EurekaServer是单点的。虽然EurekaClient 会定时的连接EurekaServer,获取注册表里的信息进行缓存到本地,如果EurekaServer不可用了EurekaClient 就不会更新,就会影响微服务的调用,所以要一个有高可用的EurekaServer 集群,EurekaServer 可以通过运行多个实例来相互注册的方式实现高可用部署。从而保证里数据的一致性。
配置3台EurekaServer
spring:
profiles:es01
application:
name: eurekserver
server:
port: 8081
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8082/eureka/,http://${eureka.instance.hostname}:8083/eureka/---spring:
profiles:es02
application:
name: eurekserver
server:
port: 8082
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8081/eureka/,http://${eureka.instance.hostname}:8083/eureka/---spring:
profiles:es03
application:
name: eurekserver
server:
port: 8083
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8081/eureka/,http://${eureka.instance.hostname}:8082/eureka/
下面我们可以直接跑一下,上节使用的那几个实例。
EurekaDiscovery的配置,这里我们都只配置了一台EurekaServer的地址,为是更明显测试一下,EurekaServer的复制。
spring:
profiles: dis01
application:
name: eurekadiscovery
server:
port: 8001
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8081/eureka/---spring:
profiles: dis02
application:
name: eurekadiscovery
server:
port: 8002
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8081/eureka/
EurekaDiscovery2的配置,这里我们也只配了8082那台EurekaServer
spring:
application:
name: eurekadiscovery2
server:
port: 8003
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8082/eureka/
分别启动这三个实例。
http://localhost:8081/http://localhost:8082/http://localhost:8083/
文章图片
【SpringCloud浅尝(四)——EurekServer 高可用】可以看出,这三个实例都已成功注册,并且3台EurekaServer都已经进行了复制。执行http://localhost:8003/hi?name=sl,EurekaDiscovery2可以成功的发现EurekaDiscovery实例并进行调用。
文章图片
推荐阅读
- SpringCloud浅尝(六)——Bus
- SpringCloud浅尝(三)——Eureka
- SpringCloud浅尝(十)——Sleuth ZipKin
- SpringCloud浅尝(九)——Hystrix Dashboard
- SpringCloud浅尝(八)——Hystrix
- SpringCloud(三)多节点高可用Eureka注册中心集群
- springcloud搭建eureka服务
- SpringCloud之 Eureka 的服务治理
- 搭建微服务(服务提供者与服务消费者)
- springcloud 服务调用成功几次之后都会失败