5.1 简介
5.2 高可用细集群搭建
操作流程
1 准备两个EurekaServer 需要相互注册
1号server:9000
#模拟两个EurekaServer
#端口9000 8000
#两个服务相互注册
server.port=9000
spring.application.name=eureka-server
eureka.instance.hostname=localhost
#是否将自己注册到注册中心
#eureka.client.register-with-eureka=false
#是否从eureka中获取注册信息
#eureka.client.fetch-registry=false
#配置暴露给Eureka Client请求的地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8000/eureka/
2号server:8000
#模拟两个EurekaServer
#端口9000 8000
#两个服务相互注册
server.port=8000
spring.application.name=eureka-server
eureka.instance.hostname=localhost
#是否将自己注册到注册中心
#eureka.client.register-with-eureka=false
#是否从eureka中获取注册信息
#eureka.client.fetch-registry=false
#配置暴露给Eureka Client请求的地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:9000/eureka/
2 需要将微服务注册到两个EurekaServer上
server.port=9001
#服务名称
spring.application.name=service-product
#注册中心访问地址 多个以逗号分隔
eureka.client.service-url.defaultZone=http://localhost:9000/eureka/,http://localhost:8000/eureka/
#使用ip地址注册
eureka.instance.prefer-ip-address=true
5.3 细节
5.3.1 在控制台显示服务IP
生产者、消费者配置
server.port=9001
#服务名称
spring.application.name=service-product
#注册中心访问地址
eureka.client.service-url.defaultZone=http://localhost:9000/eureka/,http://localhost:8000/eureka/
#使用ip地址注册
eureka.instance.prefer-ip-address=true
#向注册中心注册ip
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
5.3.2 Eureka的服务剔除问题
生产者、消费者配置
server.port=9001
#服务名称
spring.application.name=service-product
#注册中心访问地址
eureka.client.service-url.defaultZone=http://localhost:9000/eureka/,http://localhost:8000/eureka/
#使用ip地址注册
eureka.instance.prefer-ip-address=true
#心跳时间默认30s
eureka.instance.lease-renewal-interval-in-seconds=4
#续约到期时间 默认90s
eureka.instance.lease-expiration-duration-in-seconds=9
5.3.3 Eureka的自我保护机制
自我保护机制:超过续约时间没有发送心跳,15分内达到80%,才会剔除服务。在开发测试阶段一般关闭自我保护机制。
#模拟两个EurekaServer
#端口9000 8000
#两个服务相互注册
server.port=9000
spring.application.name=eureka-server
eureka.instance.hostname=localhost
#是否将自己注册到注册中心
#eureka.client.register-with-eureka=false
#是否从eureka中获取注册信息
#eureka.client.fetch-registry=false
#配置暴露给Eureka Client请求的地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8000/eureka/
#关闭自我保护机制 开发测试使用
eureka.server.enable-self-preservation=false
#扫描剔除服务的间隔
eureka.server.eviction-interval-timer-in-ms=4000
5.4 Eureka的启动流程