3.eureka高可用
Eureka Server 高可用集群
在上一个章节,实现了单节点的Eureka Server的服务注册与服务发现功能。Eureka Client会定时连接
Eureka Server,获取注册表中的信息并缓存到本地。微服务在消费远程API时总是使用本地缓存中的数
据。因此一般来说,即使Eureka Server发生宕机,也不会影响到服务之间的调用。但如果Eureka
Server宕机时,某些微服务也出现了不可用的情况,Eureka Server中的缓存若不被刷新,就可能会影
响到微服务的调用,甚至影响到整个应用系统的高可用。因此,在生成环境中,通常会部署一个高可用
的Eureka Server集群。
Eureka Server可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增
量地同步信息,从而确保所有节点数据一致。事实上,节点之间相互注册是Eureka Server的默认行
为。
搭建 Eureka Server高可用集群
启动第一个注册中心服务:
修改eureka模块配置yml如下:
spring:
application:
name: eureka1-server
server:
port: 9000 #端口
#配置eureka server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: true #是否将自己注册到注册中心(默认为true)
fetch-registry: true #是否要从eureka获取注册信息
service-url: #配置暴露给eureka Client的请求地址
defaultZone: http://127.0.0.1:8000/eureka/ #第一个端口为9000的注册中心服务要去第二个端口为8000的注册中心注册
配置完上述之后启动服务:
启动第二个注册中心
修改eureka模块配置yml如下:
spring:
application:
name: eureka2-server
server:
port: 8000 #端口
#配置eureka server
eureka:
instance:
hostname: localhost
client:
register-with-eureka: true #是否将自己注册到注册中心(默认为true)
fetch-registry: true #是否要从eureka获取注册信息
service-url: #配置暴露给eureka Client的请求地址
defaultZone: http://127.0.0.1:9000/eureka/ #第二个端口为8000的注册中心服务要去第一个端口为9000的注册中心注册
配置完成后在IDEA里面进行如下操作才能同时启动另一个注册中心服务:
然后就可以启动复制出来的启动项了:
服务注册到Eureka Server集群
如果需要将微服务注册到Eureka Server集群只需要修改yml配置文件即可
eureka: client: service-url: defaultZone: http://localhost:9000/eureka/,http://localhost:8000/eureka/ #多个eurekaserver之间通过","分割 instance: prefer-ip-address: true #使用IP地址注册