Spring cloud 之三(Eureka server 高可用配置)
一、Eureka server(注册中心) 服务集群
- 服务同步
多个Eureka server 之间也会互相为服务,当服务注册提供者注册到Eureka server 集群中的某一个节点时,该节点会把服务提供者的信息同步到每一个集群的节点,实现数据同步。
因此,无论客户端访问到Eureka server 集群的任一几点都可以获取到完整的服务列表。
- 搭建Eureka server 集群需要注意配置文件application.yml
spring:
application:
name: springcloud-eureka-server
server:
#含义:读取系统可以端口,否则使用定义
port: 10086
#设置该服务中心的hostname,指定ip,该实例名称不能重复
eureka:
instance:
hostname: localhost
client:
#是否注册自己,默认true,这个应用会向注册中心(也是它自己)注册它自己,设置为false表示禁止这种自己向自己注册的默认行为
#register-with-eureka: false
#表示是否从Eureka Server获取注册信息,默认为true。如果这是一个单点的 Eureka Server,不需要同步其他节点的数据,可以设为false。
#fetch-registry: false
#指定服务注册中心的位置
#如果是集群,Eureka集群相互指向注册中心
service-url:
#集群搭建 多个注册中心url使用英文“,”拼接
defaultZone: http://127.0.0.1:${server.port}/eureka
二、服务端、客户端配置
1、客户端:
服务地址使用ip方式、续约
1 eureka: 2 instance: 3 #使用Ip 不使用host名 4 prefer-ip-address: true 5 ip-address: 127.0.0.1 6 #服务续约(renew)时间间隔,默认30s 每隔30s向注册中发送一条通知,报告自己存活状态 7 lease-renewal-interval-in-seconds: 30 8 #服务服务失效时间,默认90s 等待90s后注册中心为收到心跳认为此服务宕机,剔除服务列表 9 lease-expiration-duration-in-seconds: 90
2、服务端:
失效剔除、自我保护
1 eureka: 2 server: 3 #自我保护模式默认是自动开启的,可以选择关闭,禁用自我保护模式,保证不可用的服务及时剔除 4 enable-self-preservation: false 5 #剔除失效服务间隔单位ms,默认60s 6 eviction-interval-timer-in-ms: 20000 7 #留存的服务示例低于多少比例进入保护模式,默认85% 8 renewal-percent-threshold: 0.5