【发布时间】:2013-05-03 17:22:49
【问题描述】:
我正在尝试使用 ZeroMQ 设计一个发布/订阅体系结构,并且我想最大限度地利用 ZMQ 对订阅者的内部过滤。
在 ZMQ 中处理多个消息信封的最佳方法是什么,以便接收订阅者只能看到与其感兴趣的所有信封匹配的消息?
作为示例层次结构,假设我有一个 UniverseID、一个 SessionID 和一个 MessageTypeID,我想为给定会话和 Universe 查找给定类型的所有 MessageTypeID,如下所示:
UniverseID (Subscriber Key, Example = 42)
SessionID (Subscriber Key, Example = 4)
MessageTypeID (Subscriber Key, Example = 2)
Message (Actual Message)
在 ZMQ 中是否有一种方法可以过滤消息,例如具有多个帧的“分层过滤器”,或者是在单个信封帧中构建单个密钥的最佳方式(即作为 “UniverseID.SessionID.MessageTypeID” 还是在我们的示例中 "42.4.2")?
最终目标是让订阅者在 ZMQ 之外完成零过滤,这样如果我在我的套接字上调用 zmq_recv,我只会看到与所有三个订阅者键匹配的消息,而不必手动检查我是否'在对消息进行任何操作之前,我对消息感兴趣。
【问题讨论】: