python的rpc

分布式系统调用方调用本地的一个方法,被RPC框架偷梁换柱为远程的一个方法 / 企业内网服务间调用 / 在实际应用中考虑服务的高可用、负载均衡等问题

与HTTP对比:(可读性和效率之间,通用性和易用性)

HTTP优势在于可读性好,可以得到防火墙的支持和跨语言的支持;劣势在于有用信息占比少,效率低(HTTP工作在第七层,包含了大量的HTTP头等信息),此外使用HTTP协议调用远程方法比较复杂,要封装各种参数名和参数值。

流程

  1. 客户端调用客户端存根。这个调用是在本地,并将调用参数push到栈中。
  2. 客户端存根将这些参数包装(marshalling),并通过系统调用发送到服务端机器。(常见方式:XML、JSON、二进制编码)
  3. 客户端本地操作系统发送信息至服务器。(可通过自定义TCP协议或HTTP传输)
  4. 服务器系统将信息传送至服务端存根
  5. 服务端存根解析信息(unmarshalling)。
  6. 服务端存根调用程序,并通过类似的方式返回给客户端

Reference

序列化与反序列化

xmlrpc

grpc (proto3)

hprose

猜你喜欢

转载自blog.csdn.net/qq_34276652/article/details/112766620
RPC