Spring Cloud Eureka双节点注册中心集群配置
在《服务治理:Spring Cloud Eureka》中讲了单节点的配置,而注册中心是高可用的,一般是需要集群部署的,这篇文章我们介绍如何配置双节点的注册中心集群。
(1)修改 application.properties 为:
spring.application.name=eureka-server
(2)新建 application-peer1.properties 为:
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://localhost:1112/eureka/
(3)新建 application-peer2.properties 为:
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
(4)idea做如下修改:
这样就可以分别启动两个注册中心。注册中心1和注册中心2相互注册组成了高可用集群。
或者使用命令:
java -jar eureka-server-**jar --spring.profiles.active=peer1
java -jar eureka-server-**jar --spring.profiles.active=peer2
(5)修改客户端配置:
加个注册中心地址,用逗号隔开即可。
服务会同时注册到配置的注册中心。
(6)访问 http://localhost:1111/ 和 http://localhost:1112/:
若我们停掉一个注册中心,服务网依然可以正常访问,即实现了服务注册中心的高可用。
由于服务注册中心之间也相互注册为服务,当服务提供者将信息注册到一个服务中心,当服务提供者发送注册请求到一个注册中心时,注册中心会将该请求转发给集群中相连的其他注册中心,从而实现注册中心之间的服务同步;通过服务同步,两个服务提供者的服务信息就可以通过集群中的任意一台注册中心获取到。
服务续约
当注册完服务之后,服务提供者会维护一个心跳来持续告诉注册中心“我还活着”,以防止注册中心将服务实例从服务列表中排除出去,该操作即为服务续约。默认服务失效时间为90s,调用间隔30s。注册中心会每个60s将当前清单中超时90s没有续约的服务剔除,以防止服务实例因为网络、内存溢出等非正常下线而没有通知注册中心导致调用失败。