RPC框架中服务的注册与发现

RPC框架是SOA架构的基石。分布式架构必须通过RPC框架进行远程调用。

RPC框架中有3个重要的角色:

roles

  1. 注册中心 :保存所有服务的名字,服务提供者的ip列表,服务消费者的IP列表
  2. 服务提供者: 提供跨进程服务
  3. 服务消费者: 寻找到指定命名的服务并消费

注册中心维护着一个服务配置中心节点树:

tree

  1. 服务提供者启动时,会将其服务名称,ip地址注册到配置中心。
  2. 服务消费者在第一次调用服务时,会通过注册中心找到相应的服务的IP地址列表,并缓存到本地,以供后续使用。当消费者调用服务时,不会再去请求注册中心,而是直接通过负载均衡算法从IP列表中取一个服务提供者的服务器调用服务。
  3. 当服务提供者的某台服务器宕机或下线时,相应的ip会从服务提供者IP列表中移除。同时,注册中心会将新的服务IP地址列表发送给服务消费者机器,缓存在消费者本机。
  4. 当某个服务的所有服务器都下线了,那么这个服务也就下线了。
  5. 同样,当服务提供者的某台服务器上线时,注册中心会将新的服务IP地址列表发送给服务消费者机器,缓存在消费者本机。
  6. 服务提供方可以根据服务消费者的数量来作为服务下线的依据。

一般会选择ZooKeeper或者Redis作为注册中心。

猜你喜欢

转载自blog.csdn.net/bruce128/article/details/78838368