gpt4 book ai didi

node.js - 与单个 Redis channel 相比,使用 Redis channel 的成本是多少

转载 作者:可可西里 更新时间:2023-11-01 11:20:23 25 4
gpt4 key购买 nike

我有一些代码基本上可以执行此 psudocode()

registerCamera(id) {
createRedisPubChannel("Camera_"+id)
}

cameraDisconnect() {
removeRedisSubChannel("Camera_"+id)
}

然后我通过该 channel 与该摄像头通信,这使我可以拥有多个引擎。

我还可以构建代码,而不是为每个摄像头创建一个 channel 。我可以创建一个名为“cameraComms”的 channel ,并确保每条消息都包含一个摄像头 ID。

我想知道这两种设计模式在性能上有什么优势/劣势吗?

如果有帮助,我可以在每个进程中注册多达 200 多个摄像头,并且在运行 3 个 Redis 实例的 3 个不同盒子之间进行通信。

非常感谢帮助/建议。

最佳答案

先决条件:

从性能的角度来看,没有。 channel ,没有。出版商和没有。订阅者的数量并不重要,但您处理消息的频率和数量很重要。

例如,

1 个发布者一次发布 1000 条消息所导致的开销比 1000 个发布者一次发送 1 条消息的开销要大。

同样,1 个订阅者接收 1000 条消息会导致比 1000 个订阅者一次接收 1 条消息更多的开销。

订阅同一 channel 的订阅者越多,发布的消息副本就越多,这是一种开销。

So the thumb Rule here is :

1. Publisher do not flood messages at once.
2. Subscriber must not be in a position to receive flooded messages at once.

回答你的问题:

如果您的发布商很重,您可以为 n 个相机使用 n 个 channel 。 1 个发布者将在一个 channel 中发布,1 个订阅者将收到这些消息。这样,您最终将拥有 n 个 channel 、n 个发布者和 n 个订阅者。

如果您的发布者不重,您可以使用单一 channel ,发布者将发送相机 ID,而您的单一订阅者将使用消息和处理。

关于node.js - 与单个 Redis channel 相比,使用 Redis channel 的成本是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com