在前面我们讨论了对设备接入的抽象和生命周期的管理,在继续深入之前,我们先讨论一下 Maque IotHub 的扩展性问题,毕竟作为一个物联网平台,能够负载大量的设备接入,是非常重要的,我想这也是大家非常关心的问题。
在这里我把问题稍微改一下,从 IotHub 能容纳多少设备接入,改成 IotHub 能不能随着业务扩容来满足业务需求,也就是说,IotHub 是否具有可扩展性?
现在 IotHub 的组成部分有:基于 Express 的 Web API、MongoDB 和 EMQ X。如何扩展 Web 服务和搭建多节点的 MongoDB 在本课程就不赘述了,只要清楚 Web 服务和 MongoDB 都具备良好的扩展性就可以了。在这一节里我们主要讨论如何扩展 EMQ X Broker。
EMQ X 纵向扩展
纵向扩展是指单机如何更多的接入设备,EMQ X 号称单机可接入百万设备:
这里我不打算验证这个说法,因为可接入数量取决于你的硬件、网络和功能(比如加载了 MongoDB 插件,那么你 MongoDB 的配置也会对 Broker 性能有影响),还取决于你的测试资源,你可能需要一些测试服务器并发,来模拟大量 Client 的接入。在这里我们只简单介绍下如何 Tuning 和测试方法。
EMQ X 提供了《Tuning Guide》,里面详细列出了需要修改的配置项,主要包括: