Apache RocketMQ 是一個開源的分佈式消息中間件系統,最初由阿里巴巴開發並貢獻給 Apache 軟件基金會。RocketMQ 提供了高性能、高可靠性、高擴展性和低延遲的消息傳遞服務,適用於構建大規模分佈式系統中的消息通信和數據同步。
RocketMQ 支持多種消息模型,包括點對點(P2P)和發佈 / 訂閲(Pub/Sub)模型。它具有以下特性:
- 高性能:RocketMQ 能夠處理大規模消息傳遞,並具有低延遲和高吞吐量的特點。
- 高可靠性:RocketMQ 提供了消息的持久化存儲和消息重試機制,確保消息不丟失,同時支持容錯和高可用性。
- 高擴展性:RocketMQ 支持橫向擴展,能夠輕鬆地擴展到多個 Broker 節點以處理大量消息。
- 豐富的特性:RocketMQ 提供了豐富的特性,包括延遲消息、順序消息、事務消息、消息過濾等。
- 監控和管理:RocketMQ 提供了豐富的監控和管理工具,用於監控消息的生產和消費情況,以及管理消息隊列的配置和狀態。
按照下面步驟,通過 Docker Compose 一鍵快速部署 RocketMQ
1. 編寫 docker-compose
複製下面的內容,創建 docker-compose.yml 文件
version: '3.8'
services:
namesrv:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq:4.9.6
container_name: rmqnamesrv
ports:
- 9876:9876
networks:
- rocketmq
command: sh mqnamesrv
broker:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq:4.9.6
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=namesrv:9876
depends_on:
- namesrv
networks:
- rocketmq
command: sh mqbroker
dashboard:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq-dashboard:latest
container_name: rmqdashboard
ports:
- 8080:8080
environment:
- JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876
depends_on:
- namesrv
networks:
- rocketmq
networks:
rocketmq:
driver: bridge
2. 啓動 RocketMQ 集羣
執行下面命令,根據 docker-compose.yml 創建 RockerMQ 集羣
docker-compose up -d
3. 關閉 RocketMQ 集羣
根據 docker-compose.yml 文件關閉所有服務。
docker-compose down
4. 訪問 RocketMQ 管理界面
關於 RocketMQ 如何集成到項目中使用,可以參考開源項目 JeecgBoot 低代碼平台