需求,在springboot專案中對接mqtt
選用activemq作為mqtt的**伺服器,那麼我用springboot開發的後台系統相對於它來說也是乙個客戶端了;所以可以考慮選擇eclipse paho 的庫
activemq的訊息佇列有兩種方式:queue和topic,即佇列和主題。
佇列是單對單的,訊息被消費者消費以後,queue中不再有儲存,所以訊息消費者不可消費到已經被消費的訊息;
主題是發布訂閱模式,生產者發布乙個主題,消費者消費主題,生產者和消費者不直接耦合。發布到topic的訊息會被所有訂閱者消費
以門禁系統為例,應用伺服器(虛擬裝置)可以訂閱每個門禁(真實裝置)的統計資料的topic,對所有門禁的資料進行統計分析,每個門禁也可以訂閱自身開關門的topic,應用伺服器憑此可以遠端控制每個門禁的狀態。
header 2
入站資料向外傳送
出站接收資料
多層萬用字元—-「#」
單層萬用字元—-「+」
萬用字元 —-「$」
servers/brokers
apache activemq apollo。在activemq基礎上發展而來的,可以支援stomp, amqp, mqtt, openwire, ssl, and websockets 等多種協議。之前的穩定發布版本中,mqtt是作為乙個apollo的乙個外掛程式提供的。但是現在,這個外掛程式已經變為開發專案的一部分。mqtt在apollo中已經不需要其他配置檔案或者是第三方外掛程式支援了。
apache activemq artemis
。。。client libraries
plugins to other software
devices aka mqtt-enabled products that are "things"
mqtt-client
activemq的客戶端庫
其中spring官方提供的mqtt支援功能使用的是eclipse paho mqtt client library,鏈結
還有有些感覺已經提供的這些庫不滿足需求,而用netty自己整合mqtt
客戶端 : 傳送或接受訊息的應用程式
生成者/發布者 : 建立並傳送訊息的客戶端
消費者/訂閱者 : 接受並處理訊息的客戶端
訊息 : 應用程式之間傳遞的資料內容
訊息模式 : 在客戶端之間傳遞訊息的方式,jms中定義了主題和佇列兩種模式
佇列中的訊息只能被乙個消費者消費
消費者可以隨時消費佇列中的訊息
主題中的訊息被所有訂閱者消費
消費者不能消費訂閱之前就傳送到主題中的訊息
connection 代表了應用程式和訊息伺服器之間的通訊鏈路
destination 指訊息發布和接收的地點,包括佇列或主題
session表示乙個單執行緒的上下文,用於傳送和接收訊息
messageconsumer 由會話建立,用於接收傳送目標的訊息
messageproducer 由會話建立,用於傳送訊息到目標
message 是消費者和生產者之間傳送的物件,訊息頭,一組訊息屬性,乙個訊息體
特性完全支援jms1.1和j2ee 1.4規範 (持久化,xa訊息,事務)
對spring的支援,activemq可以很容易內嵌到使用spring的系統裡面去,而且也支援spring2.0的特性
特性amqp的完整實現
事務支援/發布確認
訊息持久化
特性高吞吐量:即使是非常普通的硬體kafka也可以支援每秒數百萬 的訊息。
支援通過kafka伺服器和消費機集群來分割槽訊息。
mysql對接 對接mysql
新建 對接mysql 安裝pymysql 參考 安裝pymysql 在檔案 bianbingdang init py 內寫入如下 import pymysql pymysql.install as mysqldb 修改配置 開啟配置檔案 bianbingdang settings.py 找到如下 d...
MQTT協議 MQTT協議簡介
mqtt messagequeuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...
MQTT協議 MQTT協議解析
協議就是通訊雙方的乙個約定,即,表示第1位傳輸的什麼 第2位傳輸的什麼 在mqtt協議中,乙個mqtt資料報由 固定頭 fixed header 可變頭 variable header 訊息體 payload 三部分構成。mqtt 資料報結構 固定頭存在於所有mqtt資料報中,其結構如下 bit76...