我有三个互不相关的 CPU 密集型的函数要做到 gRPC 里面。现在有两个方案:
1. 把他们做成 3 个完全不相关的 gRPC 项目,分别部署,客户端各调各的。
2. 把他们做到同一个 gRPC 服务的三个函数。客户端分别调用这三个远程函数
请问大家建议用哪种方式?
1. 把他们做成 3 个完全不相关的 gRPC 项目,分别部署,客户端各调各的。
2. 把他们做到同一个 gRPC 服务的三个函数。客户端分别调用这三个远程函数
请问大家建议用哪种方式?
1
2kCS5c0b0ITXE5k2 Sep 17, 2021
1.
|
2
securityCoding Sep 17, 2021
没看出有什么区别
|
3
slipper Sep 17, 2021
1
|
4
mekingname OP @securityCoding 因为 gPRC 使用的是 http2,它会保持一个 tcp 的链接,避免频繁握手。方案 1 有 3 个连接。但我不确定方案 2 是 1 条还是 3 条。
|
5
locoz Sep 17, 2021 via Android
我搞我会选 1,方便管控。
|
6
locoz Sep 17, 2021 via Android
@mekingname #4 可以 Wireshark 抓个包看看
|
7
byzf Sep 17, 2021
你自己考虑一下扩容、HA 之类的这三个是不是一起做的,是不是总是同时更新的。
|
8
ch2 Sep 17, 2021
跟分库分表一样的思路,压力大的请求不能挤在一起处理
|
9
mekingname OP @locoz ok
|
10
Brentwans Sep 18, 2021
那个 CPU 密集型任务本身才是关键。
如果都是单台机器的话,方案 1 和 2 功能没有什么太大区别,如果是我选择方案 2,快,然后就可以喝咖啡了。 如果方案 1 是多台机器各种运行密集型任务,那完全和方案 2 又不是一个层面的问题了啊 |
11
mekingname OP @Brentwans 通过 k8s 分到不同的机器上。
|