我正在尝试使用ZeroMQ设计pub / sub架构,我想最大限度地利用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,我只会看到与所有三个订户密钥匹配的消息,而不必手动检查我是否'我对这个消息感兴趣,然后再做任何事情。
答案 0 :(得分:1)
在ZMQ中是否有一种过滤消息的方式,如“分层” 过滤“有多个框架或是构建单个密钥的最佳方法 在一个信封框架内(即 “UniverseID.SessionID.MessageTypeID”或我们的示例“42.4.2”)?
这是要走的路(稍作修改)。
A.
A.B.
订阅A.B.C.
订阅请注意我添加到密钥末尾的最终.
。这就是说,当所有ID都被指定为特殊情况时,您不必处理这种情况。