6种微服务RPC框架,你知道几个?( 二 )

6种微服务RPC框架,你知道几个?

文章插图
 
 
由此可见,Spring Cloud 微服务架构是由多个组件一起组成的,各个组件的交互流程如下 。
  • 请求统一通过 API 网关 Zuul 来访问内部服务,先经过 Token 进行安全认证 。
  • 通过安全认证后,网关 Zuul 从注册中心 Eureka 获取可用服务节点列表 。
  • 从可用服务节点中选取一个可用节点,然后把请求分发到这个节点 。
  • 整个请求过程中,Hystrix 组件负责处理服务超时熔断,Turbine 组件负责监控服务间的调用和熔断相关指标,Sleuth 组件负责调用链监控,ELK 负责日志分析 。
5. gRPC
先来看下 gRPC,它的原理是通过 IDL(Interface Definition Language)文件定义服务接口的参数和返回值类型,然后通过代码生成程序生成服务端和客户端的具体实现代码,这样在 gRPC 里,客户端应用可以像调用本地对象一样调用另一台服务器上对应的方法 。
 
6种微服务RPC框架,你知道几个?

文章插图
 
 
它的主要特性包括三个方面 。
  • 通信协议采用了 HTTP/2,因为 HTTP/2 提供了连接复用、双向流、服务器推送、请求优先级、首部压缩等机制
  • IDL 使用了ProtoBuf,ProtoBuf 是由 Google 开发的一种数据序列化协议,它的压缩和传输效率极高,语法也简单
  • 多语言支持,能够基于多种语言自动生成对应语言的客户端和服务端的代码 。
6. Thrift
再来看下 Thrift,Thrift 是一种轻量级的跨语言 RPC 通信方案,支持多达 25 种编程语言 。为了支持多种语言,跟 gRPC 一样,Thrift 也有一套自己的接口定义语言 IDL,可以通过代码生成器,生成各种编程语言的 Client 端和 Server 端的 SDK 代码,这样就保证了不同语言之间可以相互通信 。它的架构图可以用下图来描述 。
 
6种微服务RPC框架,你知道几个?

文章插图
 
 
从这张图上可以看出 Thrift RPC 框架的特性 。
  • 支持多种序列化格式:如 Binary、Compact、JSON、Multiplexed 等 。
  • 支持多种通信方式:如 Socket、Framed、File、Memory、zlib 等 。
  • 服务端支持多种处理方式:如 Simple 、Thread Pool、Non-Blocking 等 。

【6种微服务RPC框架,你知道几个?】


推荐阅读