前言
寒假的時候開始搭建mqtt服務器,一開始使用的是RabbitMQ,基於Erlang語言.可是RabbitMQ的本職工做是AMQP,MQTT只是他的一個插件功能,彷佛有些大材小用,不少MQTT的功能也沒有集成.此次我打算使用EMQ來從新部署個人MQTT服務器.EMQ也是基於 Erlang/OTP 語言平臺開發.他是支持大規模鏈接和分佈式集羣,發佈訂閱模式的開源 MQTT 消息服務器。支持的輸入協議不單單是MQTT,還包括WebSocket,以及物聯網一樣著名的與MQTT基於TCP傳輸協議不一樣的基於UDP傳輸協議的CoAP.數據能夠輸出到基於AMQP協議的Kafka和Rabbitmq等,或者關係數據庫PostgreSQL和非關係數據庫MongoDB,固然也能夠本身寫插件將數據輸出到時序數據庫,如InfluxDB.數據庫
程序安裝
詳細安裝教程在這裏.我使用的是ubuntu16.04.
先下載deb安裝包wget http://emqtt.com/downloads/latest/ubuntu16_04-deb
而後使用命令sudo dpkg -i ubuntu16_04-deb進行安裝.
而後須要執行sudo apt-get install lksctp-tools來安裝所需依賴
安裝完成後執行sudo service emqttd start便可啓動服務器ubuntu
配置與管理
軟件默認開啓Web管理插件,端口爲18083,能夠打開Web管理界面,默認登錄用戶爲admin,密碼爲public,
能夠在Web管理頁面方便的配置本身須要的插件,如用戶認證.. api
TCP 服務端口占用
EMQ 2.0 消息服務器默認佔用的 TCP 端口包括:服務器
1883 MQTT 協議端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制檯端口
EMQ 2.0 佔用的上述端口,可經過 etc/emq.conf 配置文件的 ‘listener’ 段落設置:tcp
## TCP Listener: 1883, 127.0.0.1:1883, ::1:1883
listener.tcp.external = 0.0.0.0:1883分佈式
## SSL Listener: 8883, 127.0.0.1:8883, ::1:8883
listener.ssl.external = 8883插件
## External MQTT/WebSocket Listener
listener.ws.external = 8083教程
## HTTP Management API Listener
listener.api.mgmt = 127.0.0.1:8080
flux