物联网私有MQTT服务器部署的一些总结
人在江湖,总有顺境和逆境;选择的路子有很多,不忘初心,找到自己愿意做的事情就好。个人总结:没有自己适不适合、擅不擅长,只要自己愿意做,做久了,就会有所得,就会变得擅长,卖油翁的匠心是难得的。
最近挺多朋友咨询,处于种种的因素,客户希望在本地网部署MQTT服务器,从而与自己的设备、自己的系统交互。那我就趁机总结了我对几种mqtt broker的了解和判断,仅供大家参考:
-
EMQX,之前的文章也介绍过,业界的开源MQTT broker,源码使用Erlang开发。基本上有接触过物联网PaaS平台、MQTT服务器开发的朋友,都知道它,为啥呢?因为容易用,功能完备,部署简单。最重要的,是其一直保持版本的更新,随着MQTT协议的升级而升级,随着业界对物联网连接管理的实际需要而升级。因此:
- 功能完善、持续更新
- 使用简单、基本使用时无需理解Erlang虚拟机原理
- 满足多种客户端鉴权、服务器对接的方式
个人感觉,在使用中不方便的是: - 集群使用、高级配置使用还是需要对Erlang本身有一定的了解
- 报错、日志等也是与Erlang语言本身有一定的关系,出问题一般人不一定能够hold住
-
RabbitMQ,企业级消息队列,消息队列的元老级存在,同样是开源,使用Erlang开发。(这里看到,为啥都是Erlang开发啊?原因一是,Erlang本身对于网络通讯协议的处理、网络高并发、分部署系统开发有天然的优势,原因二是,我个人也是Erlang开发人员,多少会关注的多一些)其优势:
- 消息队列使用广泛,所以以前使用过它的人员,部署为MQTT broker无需额外学习成本
- RabbitMQ management后台也是否完善,运维也无需额外学习成本
使用过程中,需要额外的工作是: - 客户端鉴权,无法像EMQX一样,有现成的插件拿来用,需要二次开发
- 消息接收,基本是靠实现RabbitMQ客户端,来订阅消息,再与其他服务交互
-
自建MQTT服务器,物联网创业初期,大部分做PaaS平台的企业,都有自己实现MQTT broker,虽然到现在,类似阿里、腾讯等云服务大厂的PaaS更好用,还有类似EMQ这样的开源服务存在,那自己再做MQTT服务器显得就很鸡肋了。为啥又当作一个选项呢?个人认为,早期的物联网PaaS平台,其模式是大一统,做一个公用的云服务,帮助大家实现产业转型;那未来的发展趋势,势必会存在边缘侧MQTT管理服务(与云计算对应产生的所谓雾计算、霾计算等)、适合行业属性的MQTT服务、企业根据需要的定制化MQTT服务等场景。其优势:
- 服务器可更加轻巧,不必遵循统一的标准,支持定制
- 服务器维护更得心应手,出现问题开发能够自行解决
- 规模化后,势必比公有云服务更加优惠
其不便之处就不用多说了,并不是所有人都能够开发出企业级MQTT应用的,研发成本、维护成本在早期会比较高。与直接使用现成的服务相比,也拖慢了快速做市场验证的步伐。
综上,不同的情况选择使用不同的产品,没有最好,只有最适合。
最后,github上有个专门对比MQTT的各种服务器,都是英文的,作为参数。
https://github.com/mqtt/mqtt.org/wiki/server-support
网友评论