体系化认识微服务之四:服务注册发现机制

本文探讨了微服务架构中的服务注册发现机制,包括集中式、进程内和独立进程负载均衡策略。集中式LB存在单点问题,进程内LB解决了此问题但需高可用的服务注册表,如Zookeeper、Consul。独立进程LB则避免了开发不同语言的客户端,但部署更为复杂。
摘要由CSDN通过智能技术生成

服务调用者要在众多的微服务中调用具体的服务提供者,必然涉及到负载均衡的问题,根据负载均衡的实现可以分为集中式LB、进程内LB和独立进程LB。

集中式LB

集中式LB

LB上有所有的服务地址配置,当服务消费者调用某个服务的时候,LB会根据负载均衡策略(随机、轮询等)将请求转发到具体的服务上。此外,服务调用者还需要知道LB的地址,通常的做法是运维在服务器上配置一个DNS域名或者IP,这个域名指向LB。

这种实现方式的问题每次调用都要访问LB,LB存在单点问题,无法水平扩展

进程内LB

进程内LB

为了解决每次服务调用都经过LB的不足,把LB放在客户端可以很好解决,这里多了一个注册表,服务提供方启动时,首先将服务地址注册到服务注册表,定期发送心跳包到服务注册表,检查存活状态。

服务消费方要访问某个服务时,经历以下过程:

  1. 服务消费者在启动时从服务注册表获取需要的服务注册信息
  2. 将服务提供者注册信息缓存在本地(客户端LB)
  3. 监听服务提供者注册信息的变更,如接收到服务注册中心的服务变更通知,则在本地缓存中更新服务的注册信息
  4. 根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略(随机负载均衡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值