内网间服务是否有需要走 http2?

2021-01-14 10:06:59 +08:00
 test3207

rt,因为有大量小文件 host 的服务,导致内网几台服务器连接数很多。好像 http2 可以连接复用,但是 http2 需要证书,服务器多了又有点折腾。有没有好哥哥指个路? QwQ

2720 次点击
所在节点    HTTP
10 条回复
whileFalse
2021-01-14 10:14:16 +08:00
歇着吧
内网建立连接非常快,连接复用提升不了多少效率。反而是 https 的加密可能对服务器性能有影响。
tabris17
2021-01-14 10:18:22 +08:00
需要

gRPC 基于 HTTP/2 必然有其道理。多路复用带来的性能提升可以 cover 掉 https 加密解密的性能损失
test3207
2021-01-14 10:37:05 +08:00
@whileFalse 我担心的是后续用户量增加了,连接数不够用,以及瞬时维护太多连接是否也会有性能问题。内网连接速度再怎么也慢不到哪里去
test3207
2021-01-14 10:38:45 +08:00
@tabris17 有作业可以抄吗?还是直接看这个 grpc ? QwQ
tabris17
2021-01-14 10:57:47 +08:00
@test3207 如果你是从零开始,那就选 gRPC,如果现有业务已经部署了,没必要改成 gRPC
Jirajine
2021-01-14 11:09:05 +08:00
内网也不该直接用明文,自建 CA 比较安全。
wysnylc
2021-01-14 11:15:03 +08:00
http2 的头部压缩能省流量,极限情况可以接近原始 tcp 效率
多路复用倒是可能还有负提升,因为多个 http 请求被绑定到了一个 tcp 上
至于 https 完全没必要担心,在乎这点性能建议使用 udp 自己实现 quic
whileFalse
2021-01-14 11:16:21 +08:00
@test3207 你能有多少用户?你的业务需要长时间建立连接吗?
任何 http server 都能简单地 hold 住 1000 个连接,但你一个内网服务同时处理 1000 个业务早就崩了。

@tabris17 提到了 gRPC,这货是可以用 HTTP/2 without SSL 的。你可以试试把服务配成 HTTP/2 without SSL,然后就能愉快地 gRPC 了。不过普通的 HTTP Request 库很可能不支持这个特性。

最后,我还是觉得 [没有必要] 。过早优化是万恶之源。
whileFalse
2021-01-14 11:18:16 +08:00
@wysnylc http2 的头部压缩主要作用于 header 啊 cookie 啊之类的。服务间调用的 header 可少太多了……
test3207
2021-01-14 11:39:43 +08:00
@whileFalse 我要是在这里承认服务崩了,老板看到了怎么想 = -=

问题现在有也好,没有也好,总之我觉得是很有可能用得上的,所以来问问好哥哥们,看看有没有好的处理可以学习一下。

还是感谢您的意见。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX