mekingname
V2EX  ›  问与答

多个 CPU 密集型任务,应该共用 gRPC 服务还是分开?

  •  
  •   mekingname · Sep 17, 2021 · 2148 views
    This topic created in 1877 days ago, the information mentioned may be changed or developed.
    我有三个互不相关的 CPU 密集型的函数要做到 gRPC 里面。现在有两个方案:

    1. 把他们做成 3 个完全不相关的 gRPC 项目,分别部署,客户端各调各的。
    2. 把他们做到同一个 gRPC 服务的三个函数。客户端分别调用这三个远程函数

    请问大家建议用哪种方式?
    11 replies  •  2021-09-22 10:22:18 +08:00
    2kCS5c0b0ITXE5k2
    2kCS5c0b0ITXE5k2
    Sep 17, 2021
    1
    1.
    securityCoding
    securityCoding
    Sep 17, 2021
    2
    没看出有什么区别
    slipper
    slipper
    Sep 17, 2021
    3
    1
    mekingname
    mekingname
    OP
    Sep 17, 2021
    4
    @securityCoding 因为 gPRC 使用的是 http2,它会保持一个 tcp 的链接,避免频繁握手。方案 1 有 3 个连接。但我不确定方案 2 是 1 条还是 3 条。
    locoz
    locoz
    Sep 17, 2021 via Android
    5
    我搞我会选 1,方便管控。
    locoz
    locoz
    Sep 17, 2021 via Android
    6
    @mekingname #4 可以 Wireshark 抓个包看看
    byzf
    byzf
    Sep 17, 2021
    7
    你自己考虑一下扩容、HA 之类的这三个是不是一起做的,是不是总是同时更新的。
    ch2
    ch2
    Sep 17, 2021
    8
    跟分库分表一样的思路,压力大的请求不能挤在一起处理
    mekingname
    mekingname
    OP
    Sep 18, 2021
    9
    @locoz ok
    Brentwans
    Brentwans
    Sep 18, 2021
    10
    那个 CPU 密集型任务本身才是关键。
    如果都是单台机器的话,方案 1 和 2 功能没有什么太大区别,如果是我选择方案 2,快,然后就可以喝咖啡了。
    如果方案 1 是多台机器各种运行密集型任务,那完全和方案 2 又不是一个层面的问题了啊
    mekingname
    mekingname
    OP
    Sep 22, 2021
    11
    @Brentwans 通过 k8s 分到不同的机器上。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1736 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:37 · PVG 20:37 · LAX 04:37 · JFK 07:37
    ♥ Do have faith in what you're doing.