【问题标题】:Is it possible to get a list of filters from a ZeroMQ PUB-socket?是否可以从 ZeroMQ PUB-socket 获取过滤器列表?
【发布时间】:2015-08-27 16:16:30
【问题描述】:

如 PUB/SUB 场景中 zeromq 3.x 版中的docs 所述,消息在发布者端进行过滤(而不是在订阅者端,这是微不足道的)。

对我来说,这听起来像是发布者必须保存所有连接的套接字和消息过滤器的列表才能完成此操作。

你同意吗?

基于这个假设,我现在想知道特定过滤器是否处于活动状态。当我知道它没有被使用时,这将使我可以不从某些(可能非常慢)其他数据提供者检索特定数据。

在最新版本的 ZeroMQ 中,有没有办法查看给定 PUB 套接字上哪些过滤器处于活动状态?

我知道这方面已经有一些工作,请参阅here,但现在已经两年了..

【问题讨论】:

  • 您可能想要删除 c++ 标签,因为您的问题与 C++ 无关,并且 zeromq 也不是用 C++ 编写的。
  • @MarcusMüller 实际上 ZeroMQ 是用 C++ 编写的,但是公开了一个 C API(没关系,我同意最好去掉 c++ 标签)。
  • @Xaqq:当然,你是对的;我倾向于忘记这一点。

标签: zeromq publish-subscribe


【解决方案1】:

据我所知,没有办法从 ZMQ 获取这些信息。如果您想了解这方面的最新信息,最好的询问位置是ZMQ dev mailing list,实际的开发人员都在那里。

再往前看,我发现this discussion on the mailing list 虽然没有具体说明订阅者主题,但确实说明了为什么该信息不可用 - 即,知道订阅者订阅了某个主题意味着知道它们是连接的,并且这些信息违背了让连接/断开更加无缝的 ZMQ 抽象设计概念。

有一个解决方案,但可能不是您正在寻找的解决方案:启动另一对元套接字以从客户端到服务器通信它感兴趣的主题,因此这些信息从 ZMQ 抽象变为显式消息通过。您在那里跟踪该信息并使用它来控制您的信息收集。这可能看起来有点混乱(当信息在技术上已经存在于发布者中时,正如您所指出的),但这是 ZMQ 的做事方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    相关资源
    最近更新 更多