V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mekingname
V2EX  ›  问与答

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

  •  
  •   mekingname · 38 天前 · 606 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有三个互不相关的 CPU 密集型的函数要做到 gRPC 里面。现在有两个方案:

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

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