关于 topic 数量和命名方式的问题

环境信息

  • EMQX 版本:v4.4
  • 操作系统及版本:centos 7

问题描述

请教2个问题:

  1. 假如我有设备 100w 台,topic 的数量大家是怎么处理的,比如创建100w 个topic(设备一对一topic),或者其他方案(想看看大佬们的方案是啥样的,目前没有群发的场景)。emqx 文档说 topic 数量对它的性能影响不大

  2. 假如我创建100w topic(设备一对一topic),下面2种命名方式对性能会有影响吗:
    a: ${deviceMac}/
    b: device/${deviceMac}

Hi @1581376418

  1. Topic 的数量对性能影响不是关键的(主要消耗的是内存资源),性能影响主要是在层级(多一个层级就会多查询一次内存表)但其实影响也不大,可以通过测试来实际验证。通常一个客户端是不止一个 Topic 的,这个不用担心

  2. 可以忽略的

关于主题设计,主要要考虑通配符的设计: 客户端要尽可能少的订阅通配符主题或者不订阅;或者通配层级尽量靠后

topic层级一般用作业务划分,层级过长会略微降低订阅的速度,但是不用特别担心,只要业务上满足需求即可。类比 HTTP 的路径,长度会有影响,但是不用特别担心

好的,感谢

好的,谢谢