美文网首页
高性能服务系统的构建和实战书的学习笔记(4)系统间调用之RPC

高性能服务系统的构建和实战书的学习笔记(4)系统间调用之RPC

作者: c6963da9e3f8 | 来源:发表于2018-01-26 15:32 被阅读0次

好的网络IO模型是构成高性能系统的基础之一,而搭建在其上的各种RPC框架则是完成高性能系统间通信的一种具体技术形式。

RPC远程过程调用协议,一个通俗的描述是客户端在不知道调用细节的情况下,调用存在与远程计算机上的某个对象,就像调用本地应用程序中的对象一样。

更为通俗易懂的描述是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

从中我们可以概括出几点特征:

1 RPC是协议:既然是协议就只是一套规范规则,也就是需要有人遵循这套规范来进行实现。目前典型的RPC实现包括dubbo,thrift,gRPC,Hetty

2 网络协议和网络IO模型对其透明:既然RPC的客户端认为自己是在调用本地对象,那么传输层使用的是TCP还是HTTP协议,又或者是一些其他的网络协议它就不需要关心了,使用的哪种网络IO模型,调用者也不需要关心了(实际上是要关心的,得做性能调优)

3 信息格式对其透明:对于远程调用者来说,这些参数会以某种信息格式传递给网络中的另外一台计算机,这个信息格式是怎样构成的,调用方就不需要关心了

4 RPC框架都应该有跨语言能力。

thrift可以支持几乎所有的编程语言,而且可以支持多种消息格式,thrift是建立在tcp协议基础上的,而且支持阻塞IO模型和多路复用IO模型

影响RPC框架性能的几个因素:

1 所支持的网络IO模型

2 基于的网络协议:TCP协议下的RPC框架性能普遍好于工作在HTTP协议下的RPC框架,但后者灵活性又要好很多,目前没有采用UDP协议作为主要传输协议的RPC框架

3 选择的消息封装格式:要考虑消息的易读性,描述单位内容时的消息体大小,编码解码难度,解决半包粘包问题的难易度。这是目前各种RPC框架性能差异的最重要原因

4 实现的服务管理方式:在高并发请求下,如何管理注册的服务并且运行一次服务调用,也是一个性能影响点。

相关文章

网友评论

      本文标题:高性能服务系统的构建和实战书的学习笔记(4)系统间调用之RPC

      本文链接:https://www.haomeiwen.com/subject/nrhwaxtx.html