这是我参与「第五届青训营」伴学笔记创作活动的第 15 天。
今天,我主要学习了RPC框架的相关知识,简要学习了它在Web体系开发中的应用。
一、什么是RPC?
RPC是用于在分布式系统中进行通信的一种技术。它可以让程序员像调用本地函数一样调用远程系统中的函数,而不必关心网络通信的细节。
打个比方,假设我们现在有一个远程系统,该系统有一个名为add的函数,该函数可以接收两个整数并返回它们的和。在本地系统中,我们可以使用RPC调用该远程系统中的add函数。在代码中,它看起来就像是在调用本地函数一样,但实际上,RPC框架将函数调用打包成网络请求发送到远程系统。远程系统接收到请求后,执行"add"函数,并将结果返回给本地系统。RPC框架在本地系统中处理返回结果,并以函数返回值的形式呈现给应用程序。
因此,通过RPC,我们可以轻松地调用远程系统中的函数,而不必关心网络通信的细节。
二、PRC的优点
- 增强系统的可用性和扩展性:RPC可以让不同的系统之间的资源无缝集成,提高了系统的可用性和扩展性
- 减少系统的复杂度:通过RPC,开发人员可以将复杂的网络通信隐藏在RPC框架中,从而减少系统的复杂度
- 提高开发效率:通过RPC,开发人员可以方便地调用远程系统中的资源,从而提高开发效率
- 提高系统的稳定性:RPC提供了重试和超时等功能,可以提高系统的稳定性
总的来说,RPC是一种优点十分突出的技术,它可以帮助开发人员提高系统的效率和可用性,从而提升开发效率。
三、常用RPC框架
- gRPC:由Google开发的高效、开源的RPC框架,支持多种语言,支持HTTP/2协议
- Apache Thrift:Apache的开源RPC框架,支持多种语言,高效且可扩展
- Dubbo:阿里巴巴开源的分布式服务框架,支持多种语言,特别适合于Java语言
一般来说,RPC往往用于大型软件体系开发,而这一类组织机构一般都会有自己独有的RPC设计框架。