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

2021 年 9 月 17 日
 mekingname
我有三个互不相关的 CPU 密集型的函数要做到 gRPC 里面。现在有两个方案:

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

请问大家建议用哪种方式?
1920 次点击
所在节点    问与答
11 条回复
2kCS5c0b0ITXE5k2
2021 年 9 月 17 日
1.
securityCoding
2021 年 9 月 17 日
没看出有什么区别
slipper
2021 年 9 月 17 日
1
mekingname
2021 年 9 月 17 日
@securityCoding 因为 gPRC 使用的是 http2,它会保持一个 tcp 的链接,避免频繁握手。方案 1 有 3 个连接。但我不确定方案 2 是 1 条还是 3 条。
locoz
2021 年 9 月 17 日
我搞我会选 1,方便管控。
locoz
2021 年 9 月 17 日
@mekingname #4 可以 Wireshark 抓个包看看
byzf
2021 年 9 月 17 日
你自己考虑一下扩容、HA 之类的这三个是不是一起做的,是不是总是同时更新的。
ch2
2021 年 9 月 17 日
跟分库分表一样的思路,压力大的请求不能挤在一起处理
mekingname
2021 年 9 月 18 日
@locoz ok
Brentwans
2021 年 9 月 18 日
那个 CPU 密集型任务本身才是关键。
如果都是单台机器的话,方案 1 和 2 功能没有什么太大区别,如果是我选择方案 2,快,然后就可以喝咖啡了。
如果方案 1 是多台机器各种运行密集型任务,那完全和方案 2 又不是一个层面的问题了啊
mekingname
2021 年 9 月 22 日
@Brentwans 通过 k8s 分到不同的机器上。

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

https://v2ex.ih06.com/t/802541

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

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

© 2021 V2EX