RPC框架中有3个重要的角色:
注册中心 :保存所有服务的名字,服务提供者的IP列表,服务消费者的IP列表
服务提供者: 提供跨进程服务
服务消费者: 寻找到指定命名的服务并消费。
Zookeeper用作注册中心
简单来讲,zookeeper可以充当一个服务注册表(Service Registry),让多个服务提供者形成一个集群,让服务消费者通过服务注册表获取具体的服务访问地址(IP+端口)去访问具体的服务提供者。如下图所示:
具体来说,zookeeper就是个分布式文件系统,每当一个服务提供者部署后都要将自己的服务注册到zookeeper的某一路径上: /{service}/{version}/{ip:port},比如我们的HelloWorldService部署到两台机器,那么zookeeper上就会创建两条目录:分别为/HelloWorldService/1.0.0/100.100.0.237:16888
/HelloWorldService/1.0.0/100.100.0.238:16888。
如图: