MQTT 消息服務器,emqttd 0.13.0 beta 發布

jopen 9年前發布 | 12K 次閱讀 emqttd

emqttd 0.13.0-beta 版本正式發布。支持基于 Token Bucket/Leaky Bucket 算法的速率控制(Rate Limiting)。升級 esockd 庫到3.0版本,支持參數化的Socke連接模塊。改進MQTT TCP連接數據收發,采用全異步模式。

改進升級

Protocol Compliant - Session Present Flag (#163)

Compilation fails if repo is cloned with a different name (#348)

emqttd_client: replace gen_tcp:send with port_command (#358)

TCP sndbuf, recbuf, buffer tuning (#359)

emqttd_client.erl to handle 'inet_async', 'inet_reply' properly (#360)

Refator the client/session management design

Bug修復

Cannot kick transient client out when clientId collision (#357)

Fix the order of emqttd_app:start_server/1 (#367)

emqttd_session:subscribe/2 will crash (#374)

性能測試

benchmark for 0.13.0 release

3.1G memory and 50% CPU/core:

Connections: 250K
Subscribers: 250K
Topics:      50K
Qos1 Messages/Sec In:  4K
Qos1 Messages/Sec Out: 20K
Traffic In(bps):  12M+
Traffic Out(bps): 56M+

Dashboard插件

Bugfix: emqttd-0.12.3 release: metrics are not right (emqttd_dashboard#36)

Bugfix: No Overview broker informations on non-anonymous sessions (emqttd_dashboard#33)

Improve: Overview page add new metrics (emqttd_dashboard#35)

MySQL認證插件

Improve: emqtt_acl_mysql function_clause error bug (emqttd_plugin_mysql#4)

PgSQL認證插件

Improve: Auto reconnect plugins (emqttd_plugin_pgsql#4)

Stomp協議插件

Improve: upgrade to esockd 3.0。

[emqttd]是采用Erlang語言開發,全面支持MQTT V3.1.1協議,支持集群和大規模連接的開源MQTT消息服務器。 [emqttd]致力于發布一個基于Erlang/OTP語言平臺,企業級穩定可靠,完全開源免費,可集群支持大規模物聯網、移動互聯網連接的MQTT消 息服務器。

MQTT 消息服務器,emqttd 0.13.0 beta 發布

 # 完整的MQTT V3.1/V3.1.1協議支持

* 全面支持MQTT V3.1/V3.1.1協議規范

* QoS0/1/2消息發布與訂閱支持

* Session管理和離線消息支持

* Last Will消息支持

* Retained消息支持

* TCP/SSL連接支持

* MQTT over WebSocket連接支持

* HTTP Publish消息發布接口

* ‘$SYS/#’系統Topic支持

* 基于ClientId、IP地址認證支持

* 基于用戶名、密碼認證支持

* 基于ClientId、用戶名、IP地址的ACL訪問控制

* 多服務器集群(Cluster)支持

* 多節點橋接(Bridge)支持

* 單節點50萬+客戶端連接支持

* 插件擴展架構支持

* 通過Eclipse Paho項目的服務器互操作性測試

# 完全開放源碼,多節點集群支持

* 開放源碼, MIT開源軟件許可協議

* 多服務器集群, 大規模客戶端連接支持

* 安裝簡便, 下載解壓即可啟動運行

* 插件架構, 定制或擴展服務器功能

# 快速下載安裝

 emqttd可跨平臺運行在Linux、FreeBSD、Windows與 Mac OS X。[http://emqtt.io/downloads]頁面下載程序安裝包。

解壓tgz格式程序包,到安裝目錄啟動。例如:

tar xvf emqttd-ubuntu64-0.8.1-alpha-20150529.tgz && cd emqttd

控制臺模式啟動,用于調試。控制臺可以打印所有收發的MQTT報文

./bin/emqttd console

守護進程模式啟動,默認占用1883端口用于MQTT連接,8083端口用于HTTP接口

./bin/emqttd start

查看運行狀態

./bin/emqttd_ctl status

停止

./bin/emqttd stop

下載源碼編譯:

git clone https://github.com/emqtt/emqttd.git

cd emqttd && make && make dist

HTTP消息發布接口測試

emqttd支持通過HTTP接口從應用程序向MQTT客戶端發布消息:

curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello" -k http://localhost:8083/mqtt/publish

URL:  HTTP POST http://host:8083/mqtt/publish

參數:

* qos:      QoS(0, 1, 2)

* retain:   Retain(0, 1)

* topic:   Topic

* message:  Message

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!