mqtt中的主题订阅的最大数量?

时间:2016-05-22 17:12:42

标签: mqtt

在mqtt中,客户端可以订阅的最大主题数是否存在任何限制或性能问题?

假设我在1000帖子上发表了1000条评论。并且对于任何这些帖子的每个新评论我应该被通知所以要做到这一点我想订阅所有1000个主题。这是一个很好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

这完全取决于以下变量

  1. 客户数量
  2. 每个主题的消息数
  3. 订阅每个主题的客户数量
  4. 运行代理的计算机的大小

    对此没有通用的答案,你必须测试并找出

答案 1 :(得分:2)

尝试创建嵌套的主题结构,而不是订阅1000个不同的主题。

例如:

forum1/posts/1456/comments/1
forum1/posts/1456/comments/2
forum1/posts/1456/comments/3
forum2/posts/54/comments/24

然后您可以使用通配符订阅:

// get all comments about post 1456
client.subscribe("forum1/posts/1456/#");

这将收到ID为1456的帖子的所有评论。
MQTT有两个通配符:匹配任何深度,而 + 仅匹配一个级别。

// get first comment of any post
client.subscribe("forum1/posts/+/comments/1");

请查看有关HiveMQ博客的the excellent topic & best practices文章,以供进一步参考。