Eureka是spring cloud中的一个组件,提供注册发现功能。它是一个分布式应用,用于管理微服务地址。通过部署多个Eureka Server避免单点故障。
随着微服务的规模越来越大,Eureka的便利性越来越明显。访问服务只需要通过Eureka就可以了。但是Eureka也有它不好的地方,就是弱一致性,Eureka只能保证最终一致性,不能保证强一致性。由于异步性,Eureka Client从Eureka Server获取的微服务节点会有失效的。这样,当访问失效的节点就会产生错误。所以开发的时候最好采用重试机制减少出错的可能。是最终一致性更加趋向于强一致性。
Ribbon是一个客户端负载均衡组件,它也属于spring cloud生态环境。它被用于微服务客户端,在请求微服务的时候实现负载均衡。其中一些配置就实现了重试机制,这种机制由两部分组成,一部分定义重试同一节点的次数,一部分定义重试多少个节点。通过配置这种机制就可以改善访问失效问题。