我正在为一家公司开发聊天系统,并使用许多可用的工具进行操作。我最有趣的旅程之一是通过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
答案 0 :(得分:1)
多少个订阅就是太多的订阅?
这取决于您可用于构建集群的基础架构和资源。
This is the link到有关如何构建EMQ集群的官方文档。
emqttd broker的集群体系结构基于分布式 Erlang / OTP和Mnesia数据库。
集群设计可以通过以下两个规则来概括:
- 当MQTT客户端在节点上订阅主题时,该节点将告知所有 集群中的其他节点:我订阅了一个主题。
MQTT时 客户端向节点发布消息,该节点将查找主题 表并将消息转发到预订主题的节点。 最后会有一个全局路由表(Topic-> Node) 复制到集群中的所有节点:
topic1 -> node1, node2
topic2 -> node3
topic3 -> node2, node4
--------- ---------
| Node1 | --------| Node2 |
--------- ---------
| \ / |
| \ / |
| / \ |
| / \ |
--------- ---------
| Node3 | --------| Node4 |
--------- ---------