在MQTT中每个用户拥有一个频道是个好主意吗?

时间:2018-08-28 08:53:03

标签: chat phoenix-framework mqtt emq

我正在为一家公司开发聊天系统,并使用许多可用的工具进行操作。我最有趣的旅程之一是通过Pheonix framework(Elixer语言!)

我最终使用了基于MQTT的服务器来管理聊天。我使用MQTT进行了一些针对物联网项目的基于设备的通信。我的经纪人使用了EMQ server,FE和BE都使用了this js library。 设置它是一条小路。

现在,当我添加更多功能时,我有几个问题。 我应该如何缩放我的频道/邮件比例。 多少个订阅就是太多的订阅?

我将有权使用该用法,因此将有数据作为依据。 关于这些的任何文字将不胜感激。

添加有关该应用程序的一些事实。 聊天用于进行会议的应用程序中。这是一些相同的粗略数字。

Average size of a meeting = 25 people (Can go upto 10,000)
Average number of meetings a day = 50 (currently)
Messages per minute in a meeting = 20

1 个答案:

答案 0 :(得分:1)

  

多少个订阅就是太多的订阅?

这取决于您可用于构建集群的基础架构和资源。

This is the link到有关如何构建EMQ集群的官方文档。

  

emqttd broker的集群体系结构基于分布式   Erlang / OTP和Mnesia数据库。

     

集群设计可以通过以下两个规则来概括:

     
      
  1. 当MQTT客户端在节点上订阅主题时,该节点将告知所有   集群中的其他节点:我订阅了一个主题。
  2.   
  3. MQTT时   客户端向节点发布消息,该节点将查找主题   表并将消息转发到预订主题的节点。   最后会有一个全局路由表(Topic-> Node)   复制到集群中的所有节点:

         

    topic1 -> node1, node2

         

    topic2 -> node3

         

    topic3 -> node2, node4

  4.   
---------         ---------
| Node1 | --------| Node2 |
---------         ---------
    |     \     /    |
    |       \ /      |
    |       / \      |
    |     /     \    |
---------         ---------
| Node3 | --------| Node4 |
---------         ---------