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

标签 zeromq netmq

我想从客户端向服务器发送数据。只有最后一条消息对服务器很重要。如果服务器在失败后恢复,我只希望服务器从客户端获取最后一条消息。

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

我尝试使用 NetMQ/ZeroMQ 来实现此目的。怎么办?

谢谢!

最佳答案

首先使用 PubSub,其中客户端是发布者,使用 PubSub,您只能在在线时收到消息,如果订阅者(在您的情况下是服务器)宕机,则会错过所有消息(如 radio )

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

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

还有来自 ZeroMQ 文档的合并描述:

ZMQ_CONFLATE: Keep only last message If set, a socket shall keep only one message in its inbound/outbound queue, this message being the last message received/the last message to be sent. Ignores 'ZMQ_RCVHWM' and 'ZMQ_SNDHWM' options. Does not support multi-part messages, in particular, only one part of it is kept in the socket internal queue.

关于zeromq - 如何使用 NetMQ/ZeroMQ 仅发送最后一条消息到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392834/

相关文章:

node.js - 从 zmq 套接字返回值

zeromq - 0mq/NetMQ PUB/SUB 未传送所有消息

c# - IObservable 与 NetMQ 接收

azure - 需要在 Azure Service Fabric 上实现 ICommunicationListener 的 ZeroMQ

c++ - 零MQ与C++绑定(bind)和Open MP阻止问题。为什么?

zeromq - 使用 Zeromq 缓冲失效订阅者的消息

c++ - ZeroMQ dealer--to-dealer 与 winsock 相比延迟高

python - Pub Sub 只能在一个方向上工作

c - 如何在 NetMQ 中使用 PollTimeout?

c#-4.0 - 发布者和订阅者中的 NetMQ 不工作