如何使用 ZeroMQ 制作 'shared volatile variable'?
How to make a 'shared volatile variable' with ZeroMQ?
我正在使用 ZeroMQ。
我希望节点 B 订阅节点 A。节点 A 将发送(PUB
?)一些“volatile 变量”的值(例如,某个物体的位置)。 'Volatile' 在这种情况下意味着节点 B 只关心最近的值。
结果应该是 A 可以向订阅者发送值,但是如果变量的两个值曾经在传出(或传入)队列中排队,那么最新的值将替换较早的值。另一个结果是:没有高水位线。
显然,我可以使用 PUB/SUB
来实现这一点,但这不会像最近的价值总是获胜那样。似乎有一些既定的模式可以实现这一点,但我还没有找到它。
(我想这意味着我希望 ZeroMQ 套接字模式像纯 udp
一样工作)
Q : How to make a 'shared volatile variable' ( s.t. most-recent-value-always-wins ) with ZeroMQ?
如果您的应用程序级逻辑对 PUB/SUB
满意 - 一个 PUB
-lishes ,通过 .send()
-ing 消息,其他人 SUB
-scribe 到他们各自的主题选择,以便开始 .recv()
-ing 可扩展Formal Communications Pattern 原型,我们可能会微调配置以满足您的所有要求,如上文所述 ( s.t.most-recent-value-always-胜 )
如果你从未使用过 ZeroMQ,
在深入了解更多细节之前,您可能会喜欢先看看 "ZeroMQ "
正确的配置步骤:
诀窍是使用 .setsockopt( ZMQ_CONFLATE, 1 )
方法来处理 "switch-ON" 这种由 Context()
-引擎实例管理的行为(s) 默默地告诉用户,正确的 "inside" 队列管理器的策略。
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.
Applicable socket types ZMQ_PULL, ZMQ_PUSH, ZMQ_SUB, ZMQ_PUB, ZMQ_DEALER
就是这么简单!
祝你掌握零之禅的艺术。
我正在使用 ZeroMQ。
我希望节点 B 订阅节点 A。节点 A 将发送(PUB
?)一些“volatile 变量”的值(例如,某个物体的位置)。 'Volatile' 在这种情况下意味着节点 B 只关心最近的值。
结果应该是 A 可以向订阅者发送值,但是如果变量的两个值曾经在传出(或传入)队列中排队,那么最新的值将替换较早的值。另一个结果是:没有高水位线。
显然,我可以使用 PUB/SUB
来实现这一点,但这不会像最近的价值总是获胜那样。似乎有一些既定的模式可以实现这一点,但我还没有找到它。
(我想这意味着我希望 ZeroMQ 套接字模式像纯 udp
一样工作)
Q : How to make a 'shared volatile variable' ( s.t. most-recent-value-always-wins ) with ZeroMQ?
如果您的应用程序级逻辑对 PUB/SUB
满意 - 一个 PUB
-lishes ,通过 .send()
-ing 消息,其他人 SUB
-scribe 到他们各自的主题选择,以便开始 .recv()
-ing 可扩展Formal Communications Pattern 原型,我们可能会微调配置以满足您的所有要求,如上文所述 ( s.t.most-recent-value-always-胜 )
如果你从未使用过 ZeroMQ,
在深入了解更多细节之前,您可能会喜欢先看看 "ZeroMQ
正确的配置步骤:
诀窍是使用 .setsockopt( ZMQ_CONFLATE, 1 )
方法来处理 "switch-ON" 这种由 Context()
-引擎实例管理的行为(s) 默默地告诉用户,正确的 "inside" 队列管理器的策略。
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
andZMQ_SNDHWM
options. Does not support multi-part messages, in particular, only one part of it is kept in the socket internal queue.Applicable socket types
ZMQ_PULL, ZMQ_PUSH, ZMQ_SUB, ZMQ_PUB, ZMQ_DEALER
就是这么简单!
祝你掌握零之禅的艺术。