一 服务注册与发现
1.1 服务发现概述
在微服务架构中,由于服务众多且单个服务具有多个实例,同时部署在Kubernetes集群中,实例的IP地址是可能随时变化的,需针对该情况对服务调用进行集中统一管理,因此引入服务注册发现机制。 服务注册和发现的意思是服务进程在注册中心注册自己的位置,客户端应用进程向注册中心发起查询,来获取服务的位置,服务发现的一个重要作用就是提供一个可用的服务列表。 通过统一集中化管理,使得服务直接仅通过服务名称即可调用,无需知道具体实例的IP地址。
1.2 业界主流服务注册发现方案
1.2.1 Eureka
Eureka 强调最终一致性(在有限的时间内(例如 3s 内)将数据收敛到一致状态)采用AP ,在牺牲数据一致性的情况下最大程度保障服务的可用性,服务端和客户端都是 Java 编写的,针对微服务场景,并且和 Netflix 的其他开源项目以及 Spring Cloud 都有着非常好的整合,具备良好的生态。 服务注册相对要快,因为不需要等注册信息replicate到其他节点,也不保证注册信息是否replicate成功,当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性。 参考链接: