假设您有微服务A,B和C,它们当前都通过HTTP进行通信.假设服务A向服务B发送请求,从而产生响应.然后,必须将该响应中返回的数据发送到服务C进行某些处理,最后返回到服务A.服务A现在可以
我知道延迟是实现微服务架构的固有问题,我想知道减少这种延迟的常用方法是什么?
另外,我一直在阅读Apache Thrift和RPC如何帮助解决这个问题.任何人都可以详细说明吗?
Also, I have been doing some reading on how Apache Thrift and RPC’s can help with this. Can anyone elaborate on that as well?
像Apache Thrift这样的RPC框架的目标是
>显着减少手动编程开销
>提供有效的序列化和传输机制
>跨越各种编程语言和平台
换句话说,这允许您通过线路将数据作为非常紧凑的写入和压缩数据包发送,而实现此目的所需的大部分工作由框架提供.
Apache Thrift为您提供可插拔的传输/协议栈,可以通过插入不同的方式快速进行调整
>传输(套接字,HTTP,管道,流,……)
>协议(二进制,紧凑,JSON,……)
>图层(框架,多路复用,gzip,…)
此外,根据目标语言,您可以获得服务器端的一些基础结构,例如TNonBlocking或ThreadPool服务器等.
回到最初的问题,这样的框架可以帮助使沟通更容易,更有效.但它不能神奇地消除OSI堆栈其他部分的延迟.