V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
httpbin - 协议调试工具
httpstatuses - 协议状态码查询
httpie - cURL-like tool for humans
Fiddler
test3207
V2EX  ›  HTTP

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

  •  
  •   test3207 · 96 天前 · 1305 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    10 条回复    2021-01-14 11:39:43 +08:00
    whileFalse
        1
    whileFalse   96 天前
    歇着吧
    内网建立连接非常快,连接复用提升不了多少效率。反而是 https 的加密可能对服务器性能有影响。
    tabris17
        2
    tabris17   96 天前
    需要

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

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

    最后,我还是觉得 [没有必要] 。过早优化是万恶之源。
    whileFalse
        9
    whileFalse   96 天前
    @wysnylc http2 的头部压缩主要作用于 header 啊 cookie 啊之类的。服务间调用的 header 可少太多了……
    test3207
        10
    test3207   96 天前
    @whileFalse 我要是在这里承认服务崩了,老板看到了怎么想 = -=

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

    还是感谢您的意见。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2471 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 13:53 · PVG 21:53 · LAX 06:53 · JFK 09:53
    ♥ Do have faith in what you're doing.