我正在尝试使用 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,我只会看到匹配所有三个订阅者键的消息,而不必手动检查我是否感兴趣在对它做任何事情之前的消息。