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

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

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

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

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