五、Spring cloud高可用服务治理(Eureka)

一、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.propertiesapplication.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.propertiesapplication.properties

  简单总结一下上面的配置:配置一个 Eureka 公用配置,然后不同的Eureka 服务器要通过eureka.client.service-url.defaultZone属性互相注册!

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/83691088