微服务之间的通信

6
假设您有微服务A、B和C,它们目前都通过HTTP通信。例如,服务A向服务B发送一个请求,这将导致一个响应。返回的数据必须被发送到服务C进行一些处理,最后再返回给服务A。此时,服务A可以在网页上显示结果。
我知道延迟是实现微服务体系结构时固有的问题,我想知道降低延迟的一些常见方法是什么?
另外,我已经阅读了一些关于Apache Thrift和RPC如何帮助解决此问题的文章。是否有人能详细说明一下?

1
我最近写的关于Thrift微服务的文章可能会有所帮助(其中比较了SOAP/REST/THRIFT等内容):https://dzone.com/articles/polyglot-microservices-and-apache-thrift - codeSF
请查看MQTT - Trung
RPC(发音:thrift),http在您的想法中具有字符请求-响应A->B->A等。基于队列的(MQTT等)可以理解为图形中的消息流A->B->C->A。 - Jacek Cz
@codeSF:非常感谢,推荐阅读! - JensG
1个回答

5
此外,我一直在了解Apache Thrift和RPC如何帮助解决这个问题。有人可以详细解释一下吗?
像Apache Thrift这样的RPC框架的目标是:
- 显著减少手动编程开销 - 提供高效的序列化和传输机制 - 跨所有种类的编程语言和平台
换句话说,这允许您将数据作为非常紧凑且压缩的数据包通过线路发送,而大部分所需的工作都由框架提供。
Apache Thrift为您提供可插拔的传输/协议堆栈,可以通过插入不同的内容进行快速适应:
- 传输(套接字、HTTP、管道、流等) - 协议(二进制、紧凑、JSON等) - 层(帧、多路复用、gzip等)
此外,根据目标语言,您还可以获得一些服务器端基础设施,例如TNonBlocking或ThreadPool服务器等。
因此,回到您最初的问题,这样的框架可以帮助使通信更加简单和高效。但它不能神奇地从OSI堆栈的其他部分中移除延迟。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接