色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > MQTT開源軟件之EMQ入門篇

MQTT開源軟件之EMQ入門篇 時(shí)間:2018-09-29      來源:未知

EMQ 2.0 消息服務(wù)器簡介

EMQ (Erlang/Enterprise/Elastic MQTT Broker)是基于Erlang/OTP平臺(tái)開發(fā)的開源物聯(lián)網(wǎng)MQTT消息服務(wù)器。Erlang/OTP是出色的軟實(shí)時(shí)(Soft-Realtime)、低延時(shí)(Low-Latency)、分布式(Distributed)的語言平臺(tái)。MQTT是輕量的(Lightweight)、發(fā)布訂閱模式(PubSub)的物聯(lián)網(wǎng)消息協(xié)議。

EMQ 項(xiàng)目設(shè)計(jì)目標(biāo)是承載移動(dòng)終端或物聯(lián)網(wǎng)終端海量的MQTT連接,并實(shí)現(xiàn)在海量物聯(lián)網(wǎng)設(shè)備間快速低延時(shí)(Low-Latency)消息路由:

1. 穩(wěn)定承載大規(guī)模的MQTT客戶端連接,單服務(wù)器節(jié)點(diǎn)支持50萬到100萬連接。

2. 分布式節(jié)點(diǎn)集群,快速低延時(shí)的消息路由,單集群支持1000萬規(guī)模的路由。

3. 消息服務(wù)器內(nèi)擴(kuò)展,支持定制多種認(rèn)證方式、高效存儲(chǔ)消息到后端數(shù)據(jù)庫。

4. 完整物聯(lián)網(wǎng)協(xié)議支持,MQTT、MQTT-SN、CoAP、WebSocket或私有協(xié)議支持。

 

MQTT發(fā)布訂閱模式簡述

MQTT是發(fā)布訂閱(Publish/Subscribe)模式的消息協(xié)議,與HTTP協(xié)議請求響應(yīng)(Request/Response)模式不同。

MQTT發(fā)布者與訂閱者之間通過"主題"(Topic)進(jìn)行消息路由,主題(Topic)格式類似Unix文件路徑,例如

sensor/1/temperature

 

chat/room/subject

 

presence/user/feng

 

sensor/1/#

 

sensor/+/temperature

 

uber/drivers/joe/inbox

MQTT主題(Topic)支持'+', '#'的通配符,'+'通配一個(gè)層級,'#'通配多個(gè)層級(必須在末尾)。

MQTT消息發(fā)布者(Publisher)只能向特定'名稱主題'(不支持通配符)發(fā)布消息,訂閱者(Subscriber)通過訂閱'過濾主題'(支持通配符)來匹配消息。

初接觸MQTT協(xié)議的用戶,通常會(huì)向通配符的'過濾主題'發(fā)布廣播消息,MQTT協(xié)議不支持這種模式,需從訂閱側(cè)設(shè)計(jì)廣播主題(Topic)。

例如Android推送,向所有廣州用戶,推送某類本地消息,客戶端獲得GIS位置后,可訂閱'news/city/guangzhou'主題。

 

五分鐘下載啟動(dòng)EMQ

EMQ 2.0消息服務(wù)器每個(gè)版本,會(huì)發(fā)布Ubuntu、CentOS、FreeBSD、Mac OS X、Windows平臺(tái)程序包與Docker鏡像。

下載地址: //emqtt.com/downloads

程序包下載后,可直接解壓啟動(dòng)運(yùn)行,例如Mac平臺(tái):

unzip emqttd-macosx-v2.0.zip && cd emqttd

 

# 啟動(dòng)emqttd

./bin/emqttd start

 

# 檢查運(yùn)行狀態(tài)

./bin/emqttd_ctl status

 

# 停止emqttd

./bin/emqttd stop

EMQ 消息服務(wù)默認(rèn)允許匿名認(rèn)證,啟動(dòng)后MQTT客戶端可連接1883端口,啟動(dòng)運(yùn)行日志輸出在log/目錄。

 

源碼編譯EMQ 2.0

git clone https://github.com/emqtt/emq-relx.git

 

cd emq-relx && make

 

cd _rel/emqttd && ./bin/emqttd console

 

Web管理控制臺(tái)(Dashboard)

EMQ 消息服務(wù)器啟動(dòng)后,會(huì)默認(rèn)加載Dashboard插件,啟動(dòng)Web管理控制臺(tái)。用戶可通過Web控制臺(tái),查看服務(wù)器運(yùn)行狀態(tài)、統(tǒng)計(jì)數(shù)據(jù)、客戶端(Client)、會(huì)話(Session)、主題(Topic)、訂閱(Subscription)、插件(Plugin)。

控制臺(tái)地址: //127.0.0.1:18083,默認(rèn)用戶: admin,密碼:public

 

EMQ 2.0消息服務(wù)器功能列表

完整的MQTT V3.1/V3.1.1協(xié)議規(guī)范支持

QoS0, QoS1, QoS2消息支持

持久會(huì)話與離線消息支持

Retained消息支持

Last Will消息支持

TCP/SSL連接支持

MQTT/WebSocket(SSL)支持

HTTP消息發(fā)布接口支持

$SYS/#系統(tǒng)主題支持

客戶端在線狀態(tài)查詢與訂閱支持

客戶端ID或IP地址認(rèn)證支持

用戶名密碼認(rèn)證支持

LDAP認(rèn)證

Redis、MySQL、PostgreSQL、MongoDB、HTTP認(rèn)證集成

瀏覽器Cookie認(rèn)證

基于客戶端ID、IP地址、用戶名的訪問控制(ACL)

多服務(wù)器節(jié)點(diǎn)集群(Cluster)

多服務(wù)器節(jié)點(diǎn)橋接(Bridge)

mosquitto橋接支持

Stomp協(xié)議支持

MQTT-SN協(xié)議支持

CoAP協(xié)議支持

Stomp/SockJS支持

通過Paho兼容性測試

2.0新功能: 本地訂閱($local/topic)

2.0新功能: 共享訂閱($share/<group>/topic)

2.0新功能: sysctl類似k = v格式配置文件

 

EMQ 2.0擴(kuò)展插件列表

EMQ 2.0支持豐富的擴(kuò)展插件,包括控制臺(tái)、擴(kuò)展模塊、多種認(rèn)證方式、多種接入?yún)f(xié)議等:

擴(kuò)展插件通過'bin/emqttd_ctl'管理命令行,或Dashboard控制臺(tái)加載啟用。例如啟用PostgreSQL認(rèn)證插件::

./bin/emqttd_ctl plugins load emq_auth_pgsql

 

100萬線連接測試說明

*EMQ* 2.0消息服務(wù)器默認(rèn)設(shè)置,允許大客戶端連接是512,因?yàn)榇蟛糠植僮飨到y(tǒng)'ulimit -n'限制為1024。

EMQ 消息服務(wù)器1.1.3版本,連接壓力測試到130萬線,8核心/32G內(nèi)存的CentOS云服務(wù)器。

操作系統(tǒng)內(nèi)核參數(shù)、TCP協(xié)議棧參數(shù)、Erlang虛擬機(jī)參數(shù)、EMQ大允許連接數(shù)設(shè)置簡述如下:

Linux操作系統(tǒng)參數(shù)

2M - 系統(tǒng)所有進(jìn)程可打開的文件數(shù)量

sysctl -w fs.file-max=2097152

sysctl -w fs.nr_open=2097152

1M - 系統(tǒng)允許當(dāng)前進(jìn)程打開的文件數(shù)量

ulimit -n 1048576

TCP協(xié)議棧參數(shù)

backlog - Socket監(jiān)聽隊(duì)列長度::

sysctl -w net.core.somaxconn=65536

Erlang虛擬機(jī)參數(shù)

## Erlang Process Limit

node.process_limit = 2097152

 

## Sets the maximum number of simultaneously existing ports for this system

node.max_ports = 1048576

EMQ 大允許連接數(shù)

emqttd/etc/emq.conf 'listeners'段落

## Size of acceptor pool

listener.tcp.acceptors = 64

 

## Maximum number of concurrent clients

listener.tcp.max_clients = 1000000

測試客戶端設(shè)置

測試客戶端在一個(gè)接口上,多只能創(chuàng)建65000連接

sysctl -w net.ipv4.ip_local_port_range="500 65535"

 

echo 1000000 > /proc/sys/fs/nr_open

按應(yīng)用場景測試

MQTT是一個(gè)設(shè)計(jì)得非常出色的傳輸層協(xié)議,在移動(dòng)消息、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、智能硬件甚至能源勘探等領(lǐng)域有著廣泛的應(yīng)用。1個(gè)字節(jié)報(bào)頭、2個(gè)字節(jié)心跳、消息QoS支持等設(shè)計(jì),非常適合在低帶寬、不可靠網(wǎng)絡(luò)、嵌入式設(shè)備上應(yīng)用。

不同的應(yīng)用有不同的系統(tǒng)要求,用戶使用emqttd消息服務(wù)器前,可以按自己的應(yīng)用場景進(jìn)行測試,而不是簡單的連接壓力測試:

1. Android消息推送: 推送消息廣播測試。

2. 移動(dòng)即時(shí)消息應(yīng)用: 消息收發(fā)確認(rèn)測試。

3. 智能硬件應(yīng)用: 消息的往返時(shí)延測試。

4. 物聯(lián)網(wǎng)數(shù)據(jù)采集: 并發(fā)連接與吞吐測試。

 

開源MQTT客戶端項(xiàng)目

GitHub: https://github.com/emqtt

Eclipse Paho: https://www.eclipse.org/paho/

MQTT.org: https://github.com/mqtt/mqtt.github.io/wiki/libraries

上一篇:Linux 3.14的設(shè)備樹-實(shí)戰(zhàn)開發(fā)代碼

下一篇:MQTT代理搭建

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 欧美精品网| 开妇小嫩苞调教HHH嗯啊MTV | 国产色a在线观看 | 亂倫近親相姦中文字幕 | 一区小视频 | 久久精品国产99国产精2021 | 欧美人与动牲交a欧美精品 亚洲AV无码成人精品区在线观看 | 成年女人免费视频播放体验区 | 日韩免费观看高清 | 久久人妻少妇偷人精品综合桃色 | 性无码免费一区二区三区屯线 | 中文字幕日韩人妻不卡一区 | 精品一区二区三区影院在线午夜 | 亚洲综合小说另类图片五月天 | 久久久久久三级 | 久久精品亚洲一区二区三区 | freexxxx性特大另类 | jizzjizz丝袜老师 | 又黄又硬又湿又刺激视频免费 | 99好久被狂躁A片视频无码刻晴 | 少妇饥渴XXHD麻豆XXHD骆驼 | 四虎福利影院 | 亚洲欧美日韩综合久久久久久 | 亚洲人成在线观看网站不卡 | 中文字幕大看蕉永久网 | 免费网站内射红桃视频 | 中文字幕中文字幕在线中心一区 | 国产SUV精品一区 | 亚洲人成人无码www影院 | 人人天干天干啦夜天干天天爽 | 三年片免费观看大全 | 在线无码成本人视频动漫 | 日韩精品无码一区二区 | 日韩一本之道一区中文字幕 | 欧美一区二区三区久久久久久桃花 | 欧美成人V片观看 | 百合AV肉片无码资源无码 | 少妇人妻偷人激情视频 | 欧美一二三四五六七区 | 一二三四视频社区5在线高清 | 亚洲肥老太bbw中国熟女 |