RPC框架应用于大型分布式系统时,不可能将服务的地址人为地告知到每个调用方,应该自动化地完成这个“告知”工作。这个工作的流程如图2所示:
一:NFS SERVER
1.NFS Server启动时,需要向RPC注册中心注册随机端口。
2.NFS server停止时,需要向注册中心注销服务。
3.NFS server需要定时向注册中心发送心跳,若超时,注册中心未收到心跳,RPC则认为NFS server已经停止服务,会从RPC注册中心移除对应的服务。
二:Client
1.Client主动订阅RPC注册中心的消息,以便获取NFS server的那些随机端口号。
2.NFS server下线,RPC都会告知Client
3.Client下线时,主动取消订阅。
三:NFS与RPC的关系
因为NFS各项功能都能向RPC注册中心注册,所以RPC能掌握NFS各项功能port number,PID,监听IP网段等。
客户端也能通过询问RPC找到对应的端口。
问题:
1.NFS与RPC谁先启动?
答:RPC
(RPC存在才能用注册中心).
2.如果RPC重启,NFS能正常工作吗?
不能,RPC重启,NFS必须重启。
3.NFS重启,RPC需要重启吗?
不需要。NFS可以向RPC注册中心重新注册。
4.如果同时启动2个NFS?
后面一个工作。(后一个挤掉前面一个)。