多进程与gevent的比较

4

目前我正在使用ZeroMQ实现发布-订阅模式,我有一个单一的工作者来发布消息,并且有8个订阅者(全部都会订阅)订阅相同的模式。

现在我尝试使用多进程来生成订阅者,它可以工作。但我会丢失一些消息。

我使用多进程的原因是为了在收到每个消息时进行处理并处理它们,每秒发布者会发布10-100条消息。

在这种情况下,建议使用 multiprocessinggevent

2个回答

4

我回答自己的问题

我选择使用多进程而不是gevent

  1. 服务器有8个核心
  2. 需要并行处理
  3. 选择ZMQ而不是多进程队列或gevent队列。

所以我猜进程数是固定的,等于核心数。 - hunter_tech
我不确定你在多进程下提到的那些要点。 - Avv

4

多进程显然会有更高的内存开销,但会利用另一个核心(而且您不必担心缺乏抢占),所以...这取决于您的需求。使用gevent的多个进程很可能会为您带来最高的吞吐量/最低的延迟。


那么你是说多进程让我们不用担心抢占问题了? - Avv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接