RPC--zookeeper服务提供类

ZKServiceProviderImpl实现类:

下面三个属性,第一个serviceMap,key是服务名称,value是Object也就是服务对象,用于快速查找服务实例

第二个registeredService,是已经注册的服务名称,防止重复注册服务

第三个serviceRegistry是一个服务注册组件,负责将服务元数据写入Zookeeper

RPC--zookeeper服务提供类_第1张图片

接口方法:添加服务、获取服务、发布服务

1、addService:

先判断要添加的服务是否已经注册过了(服务名称是否已经存在于registeredService这个set集合中),如果没有注册过写入map中

2、getService:

从map中获取到服务实例,如果找不到就抛出异常

3、publishService:

发布服务,通过InetAddress类获取到当前主机的ip地址,调用服务发布组件的注册服务接口,将服务名称和通信的IP地址、端口号这些注册到zookeeper,并调用addService接口将信息写入map

RPC--zookeeper服务提供类_第2张图片

你可能感兴趣的:(RPC--zookeeper服务提供类)