Linux里面rpc是什么?

Linux里面rpc是什么?,第1张

RPC(Remote Procedure Call)中文全称远程过程调用,在Linux里有个rpcbind软件,是rpc的一个简单应用例子,是和网络存储NFS相关的软件,用户要想找到NFS存储,必须通过先访问RPCBIND才行。

对于大型网站来说,RPC是一个非常重要的架构

有了RPC可以让网站架构更加的系统、合理,例如:

1、服务化/微服务 2、分布式系统架构 3、服务可重用 4、系统间交互调用

NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)

NFS是通过RPC服务,进行一个端口注册,实现告知用户,NFS的工作端口是哪一个

RPC

RPC:远程过程调用

Linux上使用NFS服务,必须启动2个服务:NFS服务 和 RPC 服务

NFS服务通过RPC注册自己的端口功能

RPC服务功能就是记录每个NFS功能对应的一个端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输的目的

RPC好比是一个中介,处于客户端和服务端之间

RPC服务如何知道NFS服务端的端口信息?

NFS服务器启动的时候,会随机采用若干个端口,并且主动在RPC服务中进行注册,如此一来,RPC服务就正确知道所有NFS服务端的端口功能了,RPC服务默认使用Linux的111端口和NFS客户端进行交流,并且通过111端口将正确的NFS服务端的端口信息,告知给NFS客户端。因此,NFS客户端就能够正确找到NFS服务端的端口信息

rpcbind工具可以将RPC程序号码和通用地址互相转换。要让某主机能向远程主机的服务发起RPC调用,

则该主机上的rpcbind必须处于已运行状态。

当RPC服务启动后,它会告诉rpcbind它监听在哪个地址上,还会告诉它为服务准备好提供的PRC程序

号码。当客户端要向某个给定的程序号码发起RPC调用时,它首先会联系服务端的rpcbind以确定RPC

请求应该发送到哪个地址上。

rpcbind工具应该在所有RPC管理的服务(rpc service)启动之前启动。一般来说,标准的rpc服务由端

口监视器来启动,因此rpcbind必须在端口监视器被调用之前已经启动完成。

当rpcbind工具已经启动后,它会检查特定的name-to-address的转换调用功能是否正确执行。如果失

败,则网络配置数据库会被认为过期,由于RPC管理的服务在这种情况下无法正确运行,rpcbind会输

出这些信息并终止。

rpcbind工具只能由super-user启动。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7394075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存