一、 Eureka Server高可用配置
- (1)高可用是什么?
“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性
如:给Eureka Server 搞一个备份 - (2)服务同步原理
多个Eureka Server之间也会互相注册为服务,当服务提供者注册到Eureka Server集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。
因此,无论客户端访问到Eureka Server集群中的任意一个节点,都可以获取到完整的服务列表信息。
二、实例
(1)假设要搭建两台EurekaServer的集群
端口分别为:10086和10087
(2)操作步骤
》把register-with-eureka和fetch-registry修改为true或者注释掉
》${}表示在jvm启动时候若能找到对应port或者defaultZone参数则使用,若无则使用后面的默认值
》把service-url的值改成了另外一台EurekaServer的地址,而不是自己
Eureka服务端高可用配置详细操作
(1)假设要搭建两台EurekaServer的集群
端口分别为:10086和10087
(2)操作步骤
》把register-with-eureka和fetch-registry修改为true或者注释掉
spring:
application:
name: demo_register_center_eureka_10086
server:
port: ${port:10086}
eureka:
client:
service-url:
defaultZone: ${defaultZone:http://127.0.0.1:10086/eureka}
# not register myself
# register-with-eureka: false
#not query myself
# fetch-registry: false
》
表
示
在
j
v
m
启
动
时
候
若
能
找
到
对
应
p
o
r
t
或
者
d
e
f
a
u
l
t
Z
o
n
e
参
数
则
使
用
,
若
无
则
使
用
后
面
的
默
认
值
‘
{}表示在jvm启动时候若能找到对应port或者defaultZone参数则使用,若无则使用后面的默认值 `
表示在jvm启动时候若能找到对应port或者defaultZone参数则使用,若无则使用后面的默认值‘{port:10086} 取VM options的值 -Dport=10086`
》把service-url的值改成了另外一台EurekaServer的地址,而不是自己
客户端注册服务到集群
因为EurekaServer不止一个,因此 provider项目注册服务或者consumer 获取服务的时候,service-url参数需要修改为如下:
provider application.properties
eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka,http://127.0.0.1:10087/eureka
consumer application.yml
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka,http://127.0.0.1:10087/eureka