分布式之Netty介绍与实战(五)--Netty-RPC框架实战

基于Netty实现RPC框架

背景:微服务

分布式之Netty介绍与实战(五)--Netty-RPC框架实战

微服务挑战之一:微服务间的通信

分布式之Netty介绍与实战(五)--Netty-RPC框架实战

如何实现微服务之间的通信,而不带来性能瓶颈?

RPC构建需要考虑的主要因素

  • 通信协议
  • 文本协议或二进制协议(RESTful with JSON or RPC with Binary Encoding)
  • 支持的调用方式:单向、双向、Streaming
  • API容错、可伸缩性
  • ….

主流RPC框架

分布式之Netty介绍与实战(五)--Netty-RPC框架实战

RPC框架

分布式之Netty介绍与实战(五)--Netty-RPC框架实战
分布式之Netty介绍与实战(五)--Netty-RPC框架实战
分布式之Netty介绍与实战(五)--Netty-RPC框架实战

RPC框架基本问题

  1. 怎么实现用户透明?怎么生成 Proxy(Stub)?
  2. 怎么打包参数?
  3. 怎么传输?
  4. 怎么知道目标服务地址?
  5. 怎么发布一个 RPC 服务?
  1. 动态代理解决了 Stub 的问题。
  2. 序列化和网络协议编码解决了打包的问题
  3. 服务发现与路由寻址解决了如何知道目标地址的问题
  4. 如何发布一个服务,Registry 来解决。
  5. Netty 等解决了网络传输的问题。

分布式之Netty介绍与实战(五)--Netty-RPC框架实战
分布式之Netty介绍与实战(五)--Netty-RPC框架实战
分布式之Netty介绍与实战(五)--Netty-RPC框架实战