1 RocketMQ是什麼
RocketMQ是由阿里捐贈給Apache的一款分佈式、隊列模型的開源消息中間件,經歷了淘寶雙十一的洗禮。
- 官網
2 RocketMQ的發展史
- 2017開始發佈即最新4.0.0版本
3 RocketMQ的特性
4 RocketMQ基本概念
Client端
- Producer Group
一類Producer的集合名稱,這類Producer通常發送一類消息,且發送邏輯一致
- Consumer Group
一類Consumer的集合名稱,這類Consumer通常消費一類消息,且消費邏輯一致
Server端
- Broker
消息中轉角色,負責存儲消息,轉發消息,這裏就是RocketMQ Server
- Topic
消息的主題,用於定義並在服務端配置,消費者可以按照主題進行訂閱,也就是消息分類,通常一個系統一個Topic
- Message
在生產者、消費者、服務器之間傳遞的消息,一個message必須屬於一個Topic
消息是要傳遞的信息。郵件中必須包含一個主題,該主題可以解釋爲要發送給您的信的地址。消息還可能具有可選標籤和額外的鍵值對。例如,您可以爲消息設置業務密鑰,然後在代理服務器上查找消息以在開發過程中診斷問題。
- Namesrver
一個無狀態的名稱服務,可以集羣部署,每一個broker啓動的時候都會向名稱服務器註冊,主要是接收broker的註冊,接收客戶端的路由請求並返回路由信息
- Offset
偏移量,消費者拉取消息時需要知道上一次消費到了什麼位置, 這一次從哪裏開始
- Partition
分區,Topic物理上的分組,一個Topic可以分爲多個分區,每個分區是一一個有序的隊列。
分區中的每條消息都會給分配一個有序的ID,也就是偏移量,保證了順序,消費的正確性
- Tag
用於對消息進行過濾,理解爲message的標記,同一業務不同目的的message可以用相同的topic但是
可以用不同的tag來區分
- key
消息的KEY字段是爲了唯- -表示消息的,方便查問題,不是說必須設置,只是說設置爲了方便開發和運維定位問題。
比如:這個KEY可以是訂單ID等
5 下載與安裝
- 進入下載頁面
- 下載
- 解壓
- 啓動namespace 默認4g
- 啓動broke 默認8g
- 發送消息
export NAMESRV ADDR=localhost:9876
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
- 接收消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
6 引入客戶端
Maven依賴
<dependency>
<groupld>org.apache.rocketmq</groupld>
<artifactld> rocketmq-client</artifactld>
<version>4.3.0</version>
</dependency>
參考
本文由博客一文多發平臺 OpenWrite 發佈!