【问题标题】:zmq - what happens to pull queue when process dies?zmq - 当进程死亡时拉队列会发生什么?
【发布时间】:2018-01-31 08:15:50
【问题描述】:

所以我有 8 个工作人员(PULL 套接字)从一个绑定的 PUSH 套接字提供数据。它们每秒处理大量数据,有时会随机崩溃。显然,我应该尝试处理这些崩溃,但我很好奇这个系统目前的弹性。

我注意到,工作进程有时会在高活动期间内存使用量激增(虽然它不是泄漏,因为它会回退,而且这是一个没有垃圾收集的 C 程序)让我相信 zmq PULL 套接字队列正在填满,因为工作人员对所有后退记录的消息进行排序。

如果进程在此状态下死亡会发生什么?消息是否也在 PUSH 套接字中排队或丢失了?

【问题讨论】:

    标签: c sockets zeromq


    【解决方案1】:

    AFAIK,是的,如果打开 PULL 套接字的进程死亡,那么接收方队列中未在回调中接收到的任何消息都会消失。

    另外,是的,如果 PULL 套接字跟不上 PUSHers,您会看到一些内存使用量增加。基本上,消息开始堆积在客户端的 PULL 套接字队列中。

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多