zmq - 进程死亡时拉队列会发生什么?

时间:2018-01-30 19:46:16

标签: c sockets zeromq

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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