remote procedure call 远程过程调用

RPC协议(跨语言类)

  • ONC RPC
  • (XML) SOAP
  • (JSON)RESTful
  • Hessian2

二进制传输性能好,难以跨语言;文本类的则相反;

模式演变

  • 客户端服务器模式
  • 微服务

对RPC框架的要求

  • 传输性能
  • 跨语言
  • 严谨且灵活(添加字段不需要重新编译发布程序)
  • 服务发现,服务治理(Dubbo | Spring Cloud)

GRPC

二进制序列化协议

  • Protocol Buffers
  • .proto
  • 压缩效率很高

网络传输

  • Java - Netty(高效的基于异步IO的网络传输框架) - 见netty-summary
  • 服务方法 - 单向RPC | 服务端流式RPC | 客户端流失RPC | 双向流式RPC

服务发现(Discovery Service)与治理

  • 负载均衡 - LVS HAProxy Nginx
  • Envoy - GRPC
  • 配置 - listener | endpoint | cluster | route
  • 注册治理中心
  • 未来服务治理的趋势 - Service Mesh(基于Envoy)

注册治理中心