node.js - HTTP2:内部服务 API 是否应该使用 http2

标签 node.js http ssl microservices http2

我正在使用微服务架构,其中一个服务一次调用多个服务,服务器在 nodejs
我计划将 HTTP2 用于从一项服务到另一项服务的 API 调用,因为它仅使用一个带有 header 压缩的 TCP 连接。
但是,HTTP2 需要 TLS 支持,这意味着服务向其他人发出的每个 API 调用都要进行 TLS 握手,从而增加了往返开销。
尽管 TLS1.3 只需要一次往返,但它仍然会增加一些额外的开销时间。
我的问题是,首先使用 HTTP2 进行从一个服务到另一个服务的 API 调用是个好主意,还是继续使用 HTTP1.1 更好

最佳答案

HTTP2 很可能不会比普通的 HTTP1.1 性能更高。只有在 HTTPS 和并行请求的上下文中比较它们时才会更快。 HTTP2 允许重复使用相同的 TLS 握手,以及对多个并行请求(多路复用)使用相同的连接。
这就是您不设置 HTTP2 between nginx and your app server 的原因- 因为您通常不需要它们之间的 TLS。因此,除非 a) 您需要在服务之间建立安全连接,并且 b) 您计划发出并行请求 - 使用 HTTP2 进行服务到服务通信似乎没有意义。
PS:另请阅读@sbordet 的答案 - 即使没有 TLS,HTTP2 似乎也有好处。

关于node.js - HTTP2:内部服务 API 是否应该使用 http2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70688861/

相关文章:

javascript - Eclipse Javascript 如何关闭缺少分号警告?

node.js - Controller 无法将响应传递给 index.js

file - HTTPS 协议(protocol)文件完整性

javascript - 如何使用 node.js 服务器处理大量负载?

javascript - 将通过 WebSockets 发送的文件作为 ArrayBuffer 保存到文件系统时出错

ios - 检查一个 URL 是否有 http ://prefix

php - 超过1450B的请求在PHP中正确读取POST请求参数?

ssl - 支持 SSL 的嵌入式系统的证书

ssl - 如何配置 Nginx 网络服务器以使用 AWS RDS SSL,同时在 Nginx 网络服务器和访问者浏览器之间维护 https

node.js - http服务器中的NodeJS err-ssl-protocol-error