Queue 什么';我在ZeroMQ上最多可以有多少个主题?

Queue 什么';我在ZeroMQ上最多可以有多少个主题?,queue,message-queue,zeromq,distributed-system,Queue,Message Queue,Zeromq,Distributed System,我是ZeroMQ的新手(到目前为止我一直在使用SQS) 我想构建一个系统,在这个系统中,用户每次登录时都会订阅一个队列。所有订阅此队列的用户只对指向他们的消息感兴趣 我读过关于主题匹配的文章。我似乎可以创建这样的模式: development.player.234345345 development.player.453423423 integration.player.345354664 而且,每个工作者(用户)都可以订阅队列,只收听他们匹配的主题。i、 e.开发环境中的播放器2343454

我是ZeroMQ的新手(到目前为止我一直在使用SQS)

我想构建一个系统,在这个系统中,用户每次登录时都会订阅一个队列。所有订阅此队列的用户只对指向他们的消息感兴趣

我读过关于主题匹配的文章。我似乎可以创建这样的模式:

development.player.234345345
development.player.453423423
integration.player.345354664
而且,每个工作者(用户)都可以订阅队列,只收听他们匹配的主题。i、 e.开发环境中的播放器2343454将只订阅主题为
development.player.2343454

这是真的吗

如果是这样,ZeroMQ的后果是什么


我可以有多少主题匹配有限制吗?

ZeroMQ有一个非常详细的页面,介绍如何进行主题匹配。看起来您可以拥有任意多的主题,但主题匹配会带来运行时成本。它应该非常快:

我们相信,应用上述算法可以给出一个系统 它将能够匹配或过滤范围为的单个消息 纳秒或几微秒,即使是在量大的情况下也是如此 不同主题和订阅的

但是,您需要注意以下几点:

因此,反转位图技术通过预索引一组 可搜索的项目,以便使用 最小操作数

当且仅当可搜索项集为 搜索请求数量相对稳定。 否则,重新编制索引的成本过高

简言之,只要你不经常更改订阅,你至少应该能够处理数千个主题。

A:是的,你可以 最大值是多少?更难的部分

May想阅读Martin SUSTRIK关于以下内容的帖子: 虽然ZeroMQ是自己发展的,但ZeroMQ的共同创始人Martin在这一主题上发布了一些有趣的事实,并进一步详述了一些细节和设计视图讨论

高效订阅匹配

在ZeroMQ中,简单尝试用于存储和匹配发布/订阅订阅。订阅机制用于多达10000个订阅,其中simple trie工作良好。但是,也有用户使用多达15000000份订阅。在这种情况下,需要更高效的数据结构

值得一读,以便对安全区的位置做出一些估计

同样值得一提的是,并非所有ZeroMQ版本的行为方式都相同。 最近的API使用了
PUB
端主题过滤,这对于所有使用了
SUB
端过滤的早期版本来说都不是自动的。如果所有消息(无论其最终命运如何)都广播到所有
-s,只需意识到只有一个(您用例中的用户)将匹配,而所有其他用户将丢弃消息,则将其转换为所有网络传输

因此,您的所有用例都应该考虑不同的ZeroMQ版本(包括不同的非本机语言绑定和包装器)可能存在的问题 在同一个操场上相遇并合作


无论如何,ZeroMQ是一个很棒的工具,nanomsg近年来也值得监视和挑战。

对于主题匹配,我相信ZeroMQ今天使用@user3666197描述的基于trie的算法。您链接到的页面描述了其他技术,但它们没有在ZeroMQ中实现。