微服务之间的通信

时间:2016-02-27 17:50:46

标签: rpc thrift microservices

假设您有微服务A,B和C,它们当前都通过HTTP进行通信。假设服务A向服务B发送请求,从而产生响应。然后,必须将该响应中返回的数据发送到服务C进行某些处理,最后返回到服务A.服务A现在可以在网页上显示结果。

我知道延迟是实现微服务架构的固有问题,我想知道减少这种延迟的常用方法是什么?

另外,我一直在阅读Apache Thrift和RPC如何帮助解决这个问题。任何人都可以详细说明吗?

1 个答案:

答案 0 :(得分:4)

  

另外,我一直在阅读Apache Thrift和RPC如何帮助解决这个问题。任何人都可以详细说明吗?

像Apache Thrift这样的RPC框架的目标是

  • 显着减少手动编程开销
  • 提供有效的序列化和传输机制
  • 跨各种编程语言和平台

换句话说,这允许您通过线路将数据作为非常紧凑的写入和压缩数据包发送,而实现此目的所需的大部分工作由框架提供。

Apache Thrift为您提供可插拔的传输/协议堆栈,可以通过插入不同的

快速进行调整
  • 传输(套接字,HTTP,管道,流,......)
  • 协议(二进制,紧凑,JSON,......)
  • 图层(框架,多路复用,gzip,...)

此外,根据目标语言,您可以获得服务器端的一些基础结构,例如TNonBlocking或ThreadPool服务器等。

回到最初的问题,这样的框架有助于使沟通更容易,更有效。但它不能神奇地消除OSI堆栈其他部分的延迟。