rpc思维导图,让rpc不再难懂

                                    rpc思维导图,让rpc不再难懂

解析

RPC(Remote Procedure Call),远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

在OSI网络通信模型中,RPC跨越了传输层和应用层

RPC使得开发包括网络分布式多程序在内的应用程序更加容易。



为什么要用RPC

  • 可以做到分布式,现代化的微服务

  • 部署灵活

  • 解耦服务

  • 扩展性强

RPC的目的是让你在本地调用远程的方法,而对你来说这个调用是透明的,你并不知道这个调用的方法是部署哪里。通过RPC能解耦服务,这才是使用RPC的真正目的。

工作原理

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。


rpc框架为我们解决的问题

  • 通讯问题,即A与B之间的通信,建立TCP连接

  • 寻址问题,A通过RPC框架连接到B的服务器及特定端口和调用的方法名

  • 参数序列化与反序列化,发起远程调用参数值需要二进制化,服务接收到二进制参数后需要反序列化

与http服务相比

常用rpc框架

  • Dubbo

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。


  • Motan

Motan是新浪微博开源的一个Java 框架。它诞生的比较晚,起于2013年,2016年5月开源。Motan 在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。


  • gRPC

gRPC是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。


展开阅读全文

没有更多推荐了,返回首页