对于负载较高的服务来说,往往对应这由多台服务器组成的集群。在请求到来时,为了将请求均衡的分配到后端服务器,负载均衡程序将从服务对应的地址列表中通过响应的负载均衡算法和规格,选择一台服务器进行访问,这个过程称为服务的负载均衡。
当服务的规模较小时,可以采用硬编码的方式将服务地址和配置写在代码中,通过编码的方式来解决服务的路由和负载均衡问题,也可以通过传统的硬件负载均衡设备如Nginx等软件来解决,通过相关的配置,来解决服务的路由和负载均衡问题。
当服务越来越多,规模越来越大,对应的机器数量也越来越庞大,单靠人工来管理和维护服务及地址的配置信息变得困难。并且,依赖单一的硬件均衡设备或者使用Nginx等软件方案进行路由和负载均衡调度,单点故障的问题也开始凸显出来。
因此需要一个能够动态注册和获取服务信息的地方,来统一管理服务名称和其对应的服务器列表信息,称之为服务配置中心。服务提供者在启动时,将其提供的服务名称 服务器地址注册到服务配置中心。服务消费者通过服务配置中心来获取需要调用的服务,通过相应的负载均衡算法选择其中一台服务器开始调用。这种无中心化的结构解决了之前负载均衡设备导致的单点故障。
基于Zookeeper的持久和非持久节点,我们能够近乎实时的感知后端服务器的状态。通过zab协议,使得服务配置信息能够保持一致。而Zookeeper本身的容错特征和leader选举机制,能够保障我们方便的进行扩容。通过Zookeeper来实现服务动态注册 机器上线 和下线的动态感知,方便扩容,容错性好且无中心结构化懵解决之前使用负载均衡设备带来的单点故障问题,只有但不配置信息更新才会去Zookeeper上获取最新的服务地址列表,其他时候可采用本地缓存。
分布式架构中服务配置中心的作用
最新推荐文章于 2024-06-10 14:37:43 发布