1.描述
在什么环境开启自我保护机制
本地环境:
建议本地环境禁止自我保护机制。
生产环境:
建议开启自我保护机制
2.设置
2.1 eureka服务端设置(只增加保护代码)
eureka:
server:
##测试时关闭,自我保护机制,保证不可用服务及时踢出
enable-self-preservation: false
### 清理间隔(单位毫秒,默认是60*1000)
eviction-interval-timer-in-ms: 2000
2.2 eureka client端设置
eureka:
instance:
##eureka客户端向服务器端发送心跳间隔时间,单位为秒
lease-renewal-interval-in-seconds: 1
##eureka服务器端在收到最后一次心跳等待的时间上限,超时则踢出,单位为秒
lease-expiration-duration-in-seconds: 2
2.3 测试
分别启动eureka注册服务,生产者,消费者服务
这里启动的生产者有两个8000和8010,关闭8010对应的服务,发现负载均衡时,会出现调用失败问题,这是因为,eureka心跳机制默认是30s,所以有缓存,过来一段时候后,就不会出现问题。
解决方法:服务如果真的宕机后,怎么处理?本地调用应该有重试机制,保证接口网络延迟幂等性,服务降级功能。