我正在尝试使用 ZeroMQ 设计一个发布/订阅架构,并且我想最大限度地利用 ZMQ 对订阅者的内部过滤。
在 ZMQ 中处理多个消息信封以便接收订阅者只能看到与其感兴趣的所有信封匹配的消息的最佳方法是什么?
作为层次结构示例,假设我有一个 UniverseID、一个 SessionID 和一个 MessageTypeID,我想为给定的 session 和 Universe 找到给定类型的所有 MessageTypeID,如下所示:
UniverseID (Subscriber Key, Example = 42)
SessionID (Subscriber Key, Example = 4)
MessageTypeID (Subscriber Key, Example = 2)
Message (Actual Message)
ZMQ 中是否有一种方法可以过滤消息,例如具有多个帧的“分层过滤器”,或者是在单个信封帧中构建单个 key 的最佳方法(即作为“UniverseID.SessionID.MessageTypeID”或在我们的示例中为“42.4”) .2")?
最终目标是让 ZMQ 之外的订阅者完成零过滤,这样如果我在我的套接字上调用 zmq_recv,我只会看到匹配所有三个订阅者 key 的消息,而不必手动检查我是否感兴趣在对消息做任何事情之前。
最佳答案
Is there a way in ZMQ of filtering the messages like a "layered filter" with multiple frames or is the best way to build a single key within a single envelope frame (i.e. as "UniverseID.SessionID.MessageTypeID" or in our example "42.4.2")?
这是要走的路(只需稍作修改)。
A.
订阅A.B.
订阅。 A.B.C.
订阅。 注意添加了最后的
.
我已添加到 key 的末尾。这只是为了让您不必将所有 ID 都指定为特殊情况的情况处理。
关于zeromq - ZeroMQ 发布/订阅模式中多个信封的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16364455/