如何使用NetMQ / ZeroMQ仅向服务器发送最后一条消息?

时间:2015-05-22 09:16:01

标签: zeromq netmq

我想从客户端向服务器发送数据。只有最后一条消息对服务器很重要。如果服务器在发生故障后启动,我只希望服务器从客户端获取最后一条消息。

当服务器关闭时,我希望客户端继续处理并发送消息或将其放入队列中(长度为一条消息)。

我尝试使用NetMQ / ZeroMQ。怎么办呢?

谢谢!

1 个答案:

答案 0 :(得分:3)

首先使用PubSub,其中客户端是发布者,PubSub只会在您上线时收到消息,如果订阅者(您的情况下服务器)关闭它会丢失所有消息(如收音机)

ZeroMQ还有一个名为Conflate的功能(NetMQ还没有它,你可能想要移植它),看看下面的问题:

ZeroMQ: I want Publish–Subscribe to drop older messages in favor of newer ones

还介绍了ZeroMQ文档中的混淆:

  

ZMQ_CONFLATE:仅保留最后一条消息如果设置,套接字应在其入站/出站队列中只保留一条消息,此消息是最后一条消息/最后一条消息要发送。忽略' ZMQ_RCVHWM'和' ZMQ_SNDHWM'选项。不支持多部分消息,特别是,它只有一部分保留在套接字内部队列中。