深入了解linux中的rpc服务 (linux中的rpc服务)

深入了解Linux中的RPC服务

Remote Procedure Call(远程过程调用,简称RPC)是一种分布式计算机之间进行通信的技术,它使得一台计算机上的程序能够在另一台远程计算机上执行。在Linux操作系统中,RPC服务是重要的一环,为各种应用程序提供了高效、安全的通信机制。本文将深入探讨Linux中的RPC服务。

RPC服务概述

RPC是一种通信协议,用于在不同的操作系统、应用程序之间传输数据。通过RPC,程序能够调用另一台计算机上的程序,就好像他们在同一台计算机上一样,因此RPC是一种分布式计算机通信的重要手段之一。

在Linux中,RPC服务是通过oncrpc模块来实现的。oncrpc模块为用户层应用程序提供了完整的RPC功能,并在操作系统内核中提供了充分的支持,使得各种应用程序能够直接使用RPC服务。在Linux系统中,oncrpc模块主要包含以下组件:

– RPC Port Mapper:RPC端口映射服务,可以将RPC服务映射到网络端口上。

– RPC Bindings:RPC绑定服务,用于确认RPC客户端和服务器的位置,并为它们分配唯一的网络地址。

– RPC Protocols:RPC协议服务,支持TCP和UDP两种协议,并为应用程序提供了高效、可靠的通信机制。

RPC服务用途

在Linux中,RPC服务主要应用于以下场景:

– 分布式系统:RPC服务是一种典型的分布式系统通信方式,适用于不同的操作系统、应用程序之间的通信。通过RPC服务,不同的应用程序可以协同工作,共享资源、数据等。

– 数据库管理:RPC服务也广泛应用于数据库管理,可以实现不同计算机之间的数据共享和分布式数据库管理。例如,分布式文件系统nfs在Linux中就是通过RPC来进行通信和操作的。

– 网络通信:RPC服务还被广泛应用于网络通信,例如远程监控、远程控制、远程教育、远程会议等。

RPC服务优缺点

RPC服务有以下优点:

– 可靠:RPC服务使用标准的网络协议,具有可靠性和稳定性。

– 简单:RPC服务可以让程序员将网络通信的细节隐藏起来,只需对接口进行编程,就可以完成网络通信的功能。

– 易用:RPC服务支持多种语言,便于不同语言的程序员使用。

同时,RPC服务也有以下缺点:

– 复杂:RPC服务需要掌握一定的网络知识,因此对于初学者来说可能较为复杂。

– 安全:RPC服务的安全性较低,容易受到网络攻击和安全漏洞的威胁。

RPC服务的实现

在Linux中,RPC服务的实现主要分为以下两种方式:

– 传统的RPC服务实现方式是通过编写IDL(Interface Description Language,接口描述语言)文件,然后通过RPC生成器生成客户端和服务器的代码,最后再编写应用程序。但是,这种方式需要编写IDL文件,处理较为繁琐,不利于快速开发。

– 基于XML-RPC的RPC服务实现方式是将函数的调用参数和返回值编码为XML格式,通过HTTP协议进行传输。这种方式不需要IDl文件,操作简单,适合快速开发,但因为使用了HTTP协议,会带来一定的性能损失。

RPC服务是分布式系统中的重要组成部分,提供了高效、安全的通信机制,广泛应用于数据库管理、网络通信、远程教育等领域。在Linux系统中,RPC服务通过oncrpc模块实现,并包含RPC Port Mapper、RPC Bindings、RPC Protocols等主要组件。目前,基于XML-RPC的RPC服务实现方式越来越受到开发者的青睐,将会成为未来RPC服务的重要发展方向。

相关问题拓展阅读:

  • Linux系统服务进程
  • Linux 环境下搭建NFS服务

Linux系统服务进程

服务名称 功能 默认 建议 备注说明

NetworkManager 用于自动连接网络,常用在Laptop上 开启 关闭 对服务器无用

abrt-ccpp 开启 自定 对服务器无用

abrt-oops 开启 自定 对服务器无用

abrtd 开启 自定 对服务器无用

acpid 电源的开关等检测管理,常用在Laptop上 开启 自定 对服务器无用

atd 在指定时间执行命令 开启 关闭 如果用crond,则可关闭它

auditd 审核守护进程 开启 开启 如果用selinux,需要开启它

autofs 文件系统自动加载和卸载 开启 自定 只在需要时开启它,可以关闭

avahi-daemon 本地网络服务查找 开启 关闭 对服务器无用

bluetooth 蓝牙无线通讯 开启 关闭 对服务器无用

certmonger 关闭 关闭

cpuspeed 调节cpu速度用来省电,常用在Laptop上 开启 关闭 对服务器无用

crond 计划任务管理 开启 开启 常用,开启

cups 通用unix打印服务

开启 关闭 对服务器无用

dnasq dns cache 关闭 关闭 DNS缓存服务,无用

firstboot 系统安装后初始设定 关闭 关闭

haldaemon 硬件信息收集服务 开启 开启

ip6tables ipv6防火墙 开启 关闭 用到ipv6网络的就用,一般关闭

iptables

ipv4防火墙 开启 开启 ipv4防火墙服务

irqbalance cpu负载均衡 开启 自定 多核cup需要

kdump 硬件变动检测 关闭 关闭 服务器无用

lvm2-monitor lvm监视 开启 自定 如果使用LVM逻辑卷管理就开启

matahari-broker 关闭 关闭 此服务不清楚,我关闭

matahari-host 关闭 关闭 此服务不清楚,我关闭

matahari-network 关团姿禅闭 关闭 此服务不清楚,我关闭

matahari-service 关闭 关闭 此服务不清楚,我关闭

matahari-sysconfig 关闭 关闭 此服务不清楚,我关闭

mdmonitor 软raid监视 开启 自定

messagebus 负责在各个系统进程之间传递消息 开启 开启 如停用,haldaemon启动会失败

netconsole 关闭 关闭

netfs 系统启动时自动挂载网络文件系统 开启 关闭 如果使用塌尘nfs服务,就开启

network 系统启动时激活所有网络接口 开启 开启 网络基础服务,必需!

nfs 网络文件系统 关闭 关闭 nfs文件服务,用到就开启

nfslock nfs相关 开启 关闭 nfs相关服务,用到就开启

ntpd 自动对时工具 关闭 自定 网络对时服务,用到就开启

ntpdate 自动对时工具 关闭 关闭

oddjobd 与D-BUS相关 关闭 关闭

portreserve RPC 服务相关 开启 自定 可以关闭

postfix 替代sendmail的邮件服务器 开启 自定 如果无邮件服务,可关闭

psacct 负荷检测 关闭 关闭 可以关闭

qpidd 消息通信 开启 开启

quota_nld 关闭 关闭 可以关闭

rdisc 自动检测路由器 关闭 关闭

restorecond selinux相关 关闭 关闭 如果开启了selinux,就需开启

rpcbind 开启 开启 关键的基础服务,nfs服务和桌面环境都依赖此服务!相当于CentOS 5.x里面的portmap服务。

rpcgssd NFS相关 开册消启 关闭 NFS相关服务,可选

rpcidmapd RPC name to UID/GID mapper 开启 关闭 NFS相关服务,可选

rpcsvcgssd NFS相关 关闭 关闭 NFS相关服务,可选

rsyslog 提供系统的登录档案记录 开启 开启 系统日志关键服务,必需!

saslauthd sasl认证服务相关 关闭 关闭

artd 硬盘自动检测守护进程 关闭 关闭

spice-vdagentd 开启 开启

sshd ssh服务端,可提供安全的shell登录

开启 开启 SSH远程登录服务,必需!

sssd 关闭 关闭

sysstat 开启 开启 一组系统监控工具的服务,常用

udev-post 设备管理系统 开启 开启

wdaemon 关闭 关闭

wpa_supplicant 无线认证相关 关闭 关闭

ypbind network information service客户端 关闭 关

Linux 环境下搭建NFS服务

NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的操作系统可以共享存储的服务。

NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procedure Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。

通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。

然后安装 NFS 服务

另:Ubuntu 16.04 安装命令

我们在服务端创建一个共享目顷困录 /data/share ,作为客户端挂载在远端入口,然后设置权限

然后,修改 NFS 配置文件 /etx/exports

说明一下,这里配置后边有很多参数,每个参数有歼陆不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

接下来,我们先启动 RPC 服务

我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置

最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息

然后,在客户端创建挂载目录/share

最后,挂载远端目录到本地 /share 目录

可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录

最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改

都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。

NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载氏乎顷命令如下:

最后,卸载命令

关于linux中的rpc服务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《深入了解linux中的rpc服务 (linux中的rpc服务)》
文章链接:https://zhuji.vsping.com/31291.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。