前面这篇https://blog.csdn.net/qq_37892957/article/details/88629389博文讲完了Eureka Server的介绍,下面我们讲讲Eureka Server的集群化部署。
一、概述
1.1 高可用服务注册中心概述
考虑到发生故障的情况,服务注册中心发生故障必将会造成整个系统的瘫痪,因此需要保证服务注册中心的高可用。
Eureka Server在设计的时候就考虑了高可用设计,在Eureka服务治理设计中,所有节点既是服务的提供方,也是服务的消费方,服务注册中心也不例外。
Eureka Server的高可用实际上就是将自己做为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。
1.2 什么是服务注册中心集群?
Eureka Server的同步遵循着一个非常简单的原则:只要有一条边将节点连接,就可以进行信息传播与同步。可以采用两两注册的方式实现集群中节点完全对等的效果,实现最高可用性集群,任何一台注册中心故障都不会影响服务的注册与发现。
二、项目搭建
2.1 创建三个SpringBoot项目 我这里名称是spring_cloud_eureka、spring_cloud_eureka1 、spring_cloud_eureka2
2.2 准备工作
给C:\Windows\System32\drivers\etc下面的hosts文件添加几个配置
127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3
2.3 配置三个项目的application.yml
spring_cloud_eureka 端口号8861
spring:
application:
#切记这里不能打下划线名称 不然会造成服务注册中心项目无法启动 详情可以看我的博文
name: spring-cloud-eureka
#配置安全检验机制
security:
user:
name: root
password: root
server:
port: 8861
eureka:
client:
#服务端是否自己注册自己
register-with-eureka: false
#是否去检索服务
fetch-registry: false
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka2:8862/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka3:8863/eureka/
instance:
#表示eureka server收到client的心跳时间开始 到等待下一次时心跳时间的最大等待时间 默认为90s 超过等待90秒 eureka server就会该实例剔除服务注册中心 (按需更改,可以不配置使用默认)
lease-expiration-duration-in-seconds: 90
#标识eureka client发送给server端的频率 如果在规定时间内 server端还未接收到心跳 则剔除该实例 默认时间30s (按需更改,可以不配置使用默认)
lease-renewal-interval-in-seconds: 30
spring_cloud_eureka2 端口号8862
server:
port: 8862
spring:
application:
name: spring-cloud-eureka
security:
user:
name: root
password: root
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka1:8861/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka3:8863/eureka/
spring_cloud_eureka3 端口号8863
server:
port: 8863
spring:
application:
name: spring-cloud-eureka
security:
user:
name: root
password: root
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka1:8861/eureka/,http://${spring.security.user.name}:${spring.security.user.password}eureka2:8862/eureka/
2.4 运行3个eureka server
访问localhost:8861 或者你访问其他的端口
你会发现在DS Replicas中已经自动找到你配置的其他eureka server了