【发布时间】:2016-04-17 17:59:55
【问题描述】:
我要解决的问题是后端微服务通信之间的延迟。设想。客户端向服务 A 发出请求,然后调用服务 B,该服务调用服务 C,然后将响应返回给 B,然后返回到 A 并返回给客户端。
Request: Client -> A -> B -> C
Response: C -> B -> A -> Client
微服务公开一个使用 HTTP 访问的 REST 接口。提交请求的服务之间的每个新 HTTP 连接都是额外的开销。我正在寻找在不引入另一种传输机制的情况下减少这种开销的方法(即尽可能坚持使用 HTTP 和 REST)。一些答案建议使用Apache Thrift,但我想避免这种情况。其他可能的解决方案是使用我也想避免的消息队列。 (以降低操作复杂性)。
有没有人使用 HTTP 连接池或 HTTP/2 进行微服务通信?该系统部署在 AWS 上,其中服务组以 ELB 为前端。
【问题讨论】:
-
导致延迟的原因是什么?你认为它是在建立 TCP 连接?
-
是的。主要是新的连接开销。
标签: http connection-pooling microservices http2