一、Eureka 客户端
(一)激活 Eureka 客户端
@EnableEurekaClient
(二)配置多个 eureka 注册中心
application.properties
#定义应用的名称
spring.application.name=spring-cloud-eureka-client
#客户端端口随机可用
server.port=0
#配置连接 eureka 服务器
##配置多个 eureka 注册中心,以“,”分割
eureka.client.service-url.defaultZone=http://localhost:9090/eureka,http://localhost:9091/eureka
二、Eureka 服务器
(一)激活 Eureka 服务器
@EnableEurekaServer
(二)配置 eureka 服务器
application.properties
#定义应用的名称
spring.application.name=spring-cloud-eureka-server
#配置 服务器端口
##通过 启动参数覆盖默认的 9090,改为9091,即可在不同端口运行相同应用(--server.port=9091)
server.port=9090
management.endpoints.web.exposure.include=*
management.endpoints.web.base-path=/
management.endpoint.health.show-details=always
#取消向注册中心注册
eureka.client.register-with-eureka=false
#取消向注册中心获取注册信息(服务、实例信息)
eureka.client.fetch-registry=false
三、Spring CLoud Eureka Client 客户端高可用
若 Eureka 客户端应用配置多个 Eureka 注册服务器,那么默认情况只有第一台可用的服务器,存在注册信息。若 第一台可用的 Eureka 服务器 Down 掉了,那么Eureka 客户端应用将会选择下一台可用的 Eureka 服务器。
配置属性如上:
#配置连接 eureka 服务器
##配置多个 eureka 注册中心,以“,”分割
eureka.client.service-url.defaultZone=http://localhost:9090/eureka,http://localhost:9091/eureka
(一)获取应用元信息
以下两个配置项主要应用场景:比如某个节点下线,他需要多久才能在 Eureka 注册中心反映出来!!!
#在设置这两个配置项的时候,要考虑性能
#调整获取所有应用 元信息 间隔时间
eureka.client.registry-fetch-interval-seconds=5
#调整应用 元信息 间隔时间
eureka.client.instance-info-replication-interval-seconds=5
四、Spring CLoud Eureka Server 高可用注册中心
高可用注册中心不但需要提供集群环境,解决单点故障的问题。同时,也需要能优雅地处理注册中心之间信息同步的问题。相对于客户端端高可用,区别主要在于:注册中心之间要进行同步操作。
为了实现 Eureka 服务器(注册中心)高可用,需要配置如下信息:
(1)配置公用 Eureka 服务器并启动
application.properties
#定义应用的名称
spring.application.name=spring-cloud-eureka-server
management.endpoints.web.exposure.include=*
management.endpoints.web.base-path=/
management.endpoint.health.show-details=always
#公用 Eureka 配置
##向注册中心注册(和 单服务器 相反)
eureka.client.register-with-eureka=true
##获取注册信息(服务、实例信息)(和 单服务器 相反)
eureka.client.fetch-registry=true
(2)配置 Peer 1 Eureka 服务器
application-peer1.properties
(单机情况相当于 profile=“peer1”)
# peer 1 完整配置
## peer 1 端口 9090
server.port=9090
## peer 2 主机:localhost,端口:9091
peer2.server.host=localhost
peer2.server.port=9091
#向 peer 2 注册中心注册
eureka.client.service-url.defaultZone=http://${peer2.server.host}:${peer2.server.port}/eureka
启动 Peer 1 Eureka 服务器
通过启动参数--spring.profiles.active=peer1
,相当于读取了 application-peer1.properties
和 application.properties
。
(3)配置 Peer 2 Eureka 服务器
application-peer2.properties
(单机情况相当于 profile=“peer2”)
# peer 2 完整配置
## peer 2 端口 9090
server.port=9091
## peer 1 主机:localhost,端口:9090
peer1.server.host=localhost
peer1.server.port=9090
#向 peer 2 注册中心注册
eureka.client.service-url.defaultZone=http://${peer1.server.host}:${peer1.server.port}/eureka
启动 Peer 2 Eureka 服务器
通过启动参数--spring.profiles.active=peer2
,相当于读取了 application-peer2.properties
和 application.properties
。
简单总结一下上面的配置:配置一个 Eureka 公用配置,然后不同的Eureka 服务器要通过eureka.client.service-url.defaultZone
属性互相注册!