rocketmq入門

RocketMQ簡介

1.RocketMQ是一款分佈式、隊列模型的消息中間件,是阿里巴巴集團自主研發的專業消息中間件,借鑑參考了JMS規範的MQ實現,更參考了優秀的開源消息中間件KAFKA,實現了業務消峯、分佈式事務的優秀框架。

2.其底層代碼編寫清晰優秀,採用Netty NIO框架進行數據通信

3.摒棄了Zookeeper,內部使用更輕量級的NameServer進行網絡路由,提高服務性能,並且支持消息失敗重試機制。

4.天然支持集羣模型,消費者負載均衡、水平擴展能力,支持廣播模式和集羣模式。

5.採用零拷貝的原理、順序寫盤、支持億級消息堆積能力。

6.提供豐富的消息機制,如順序消息、事務消息等

MQ基本概念:

Message:消息,消息隊列中信息傳遞的載體。

Message ID:消息的全局唯一標識,由 MQ 系統自動生成,唯一標識某條消息。

Message Key:消息的業務標識,由消息生產者(Producer)設置,唯一標識某個業務邏輯。

Topic:消息主題,一級消息類型,通過 Topic 對消息進行分類。

Tag:消息標籤,二級消息類型,用來進一步區分某個 Topic 下的消息分類。

Producer:消息生產者,也稱爲消息發佈者,負責生產併發送消息。

Producer ID:一類 Producer 的標識,這類 Producer 通常生產併發送一類消息,且發送邏輯一致。

Consumer:消息消費者,也稱爲消息訂閱者,負責接收並消費消息。

Consumer ID:一類 Consumer 的標識,這類 Consumer 通常接收並消費一類消息,且消費邏輯一致。

RocketMQ組件:

  • nameserver: 可以理解爲是消息隊列的協調者,Broker向它註冊路由信息,同時Client向其獲取路由信息,如果使用過Zookeeper,就比較容易理解了,但是功能比Zookeeper弱;
    NameServer本身是沒有狀態的,並且多個NameServer直接並沒有通信,可以橫向擴展多臺,Broker會和每一臺NameServer建立長連接;

  • Broker: Broker是RocketMQ的核心,提供了消息的接收,存儲,拉取等功能,一般都需要保證Broker的高可用,所以會配置Broker Slave,當Master掛掉之後,Consumer然後可以消費Slave;
    Broker分爲Master和Slave,一個Master可以對應多個Slave,Master與Slave的對應關係通過指定相同的BrokerName,不同的BrokerId來定義,BrokerId爲0表示Master,非0表示Slave;

  • Producer: 消息隊列的生產者,需要與NameServer建立連接,從NameServer獲取Topic路由信息,並向提供Topic服務的Broker Master建立連接;Producer無狀態,看集羣部署;

  • Consumer: 消息隊列的消費者,同樣與NameServer建立連接,從NameServer獲取Topic路由信息,並向提供Topic服務的Broker Master,Slave建立連接;

命令行管理工具

mqadmin是RocketMQ自帶的命令行管理工具,可以創建、修改Topic,查詢消息,更新配置信息等操作

登錄控制檯:

首先進入RocketMQ工程,進入/RocketMQ/bin

在該目錄下有個mqadmin腳本

查看幫助:

在mqadmin下可以查看有哪些命令

sh mqadmin

查看具體命令的使用

sh mqadmin help 命令名稱

例如,查看updateTopic的使用

sh mqadmin help updateTopic

使用命令

以創建topic爲例
指令 updateTopic

參數

-b 如果 -c爲空,則必填 broker地址,表示topic建在該broker

-c 如果 -b爲空,則必填 cluster名稱,表示topic建在該集羣(集羣可通過clusterList查詢)

-h 選填 打印幫助

-n 必填 nameserve服務地址列表,格式ip:port;ip:port;…

-p 選填 指定新topic的權限限制( W|R|WR )

-r 選填 可讀隊列數(默認爲8)

-w 選填 可寫隊列數(默認爲8)

-t 必填 topic名稱

舉例
在集羣DefaultCluster上創建主題ZTEExample,nameserve地址爲10.45.47.168:9876
sh mqadmin updateTopic –n 10.45.47.168 –c DefaultCluster –t ZTEExample

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章