1.Eureka的自我保护机制
我保护机制的工作机制是如果在15分钟内超过85%的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,Eureka Server自动进入自我保护机制,此时会出现以下几种情况:
1、Eureka Server不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。
2、Eureka Server仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上,保证当前节点依然可用。
3、当网络稳定时,当前Eureka Server新的注册信息会被同步到其它节点中。
因此Eureka Server可以很好的应对因网络故障导致部分节点失联的情况,而不会像ZK那样如果有一半不可用的情况会导致整个集群不可用而变成瘫痪。
通过配置 eureka.server.enable-self-preservation来true打开/false禁用自我保护机制,默认打开状态,建议生产环境打开此配置。
2.(待确认)之前的项目中,使用zuul网关统一过滤域名,为了管理方便,想要尝试看看能不能使用zuul管理websocket连接。
现象描述
高版本的websocket在第一次http请求后,使用的是更快速的tcp连接
zuul网关只能管理http请求,并且不支持tcp以及udp请求
websocket在经过zuul以后,就会降级会http请求(轮询的方式)
结论
最好是不要通过zuul来管理websocket连接,降级为轮询后,效率会降低很多。