慢订阅者

时间:2012-12-13 09:20:33

标签: publish-subscribe zeromq

我是ZMQ的新手 ZMQ版本 - 2.2.1 Ubuntu - 10.04 我正在使用PUB-SUB模式在多个发布者和多个订阅者之间进行通信。转发器用于订阅来自多个发布者的数据,并将其发布给所有订阅者。 目前,如果三个发布者正在运行,并且每个发布者通过PUB通道在1秒内发送1000条消息。订户每隔1秒接收数据,存储数据并写入数据库。 由于数据库的参与,用户接收数据的速率被延迟,因此内存使用(RAM)每1秒增加6-7MB。最后,由于OOM,用户被操作系统杀死 我尝试使用选项ZWQ_HWM&转发器的两个套接字上的ZMQ_SWAP。但问题仍然存在。 这有什么解决方案???

1 个答案:

答案 0 :(得分:1)

总体而言,您的问题是您的数据库无法跟上您的发布商。 0MQ无法为您解决此问题。您需要一种基于改变系统行为的架构解决方案,大概就是插入方式。

您有几个选择:

  • 使用更快的数据库
  • 使用更快的数据库插入方法
  • 写入由另一个进程异步处理的日志
  • 更改为套接字模式,让接收者告诉发件人他们已备份,以便发件人暂停(如果可能的话)

我认为在你的情况下,spool-to-disk-file选项是最好的。