溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

rocketmq部署啟動指南

發布時間:2021-06-26 09:29:24 來源:億速云 閱讀:224 作者:chen 欄目:大數據
# RocketMQ部署啟動指南

## 目錄
1. [RocketMQ概述](#rocketmq概述)
2. [環境準備](#環境準備)
3. [單機模式部署](#單機模式部署)
   - [3.1 下載安裝包](#31-下載安裝包)
   - [3.2 目錄結構解析](#32-目錄結構解析)
   - [3.3 配置修改](#33-配置修改)
   - [3.4 啟動NameServer](#34-啟動nameserver)
   - [3.5 啟動Broker](#35-啟動broker)
4. [集群模式部署](#集群模式部署)
   - [4.1 多Master模式](#41-多master模式)
   - [4.2 多Master多Slave模式](#42-多master多slave模式)
5. [控制臺部署](#控制臺部署)
6. [生產環境調優建議](#生產環境調優建議)
7. [常見問題排查](#常見問題排查)
8. [附錄](#附錄)

---

## RocketMQ概述
Apache RocketMQ是一款開源的分布式消息中間件,具有以下核心特性:
- 低延遲:在高壓下可實現毫秒級消息投遞
- 高吞吐:單機支持10萬級TPS
- 高可用:支持多副本機制和故障自動轉移
- 分布式:支持水平擴展和億級消息堆積能力
- 功能豐富:支持順序消息、事務消息、定時消息等高級特性

典型應用場景包括:
- 應用解耦
- 異步通信
- 流量削峰
- 日志收集
- 消息分發

## 環境準備

### 硬件要求
| 角色        | 最低配置                | 推薦配置                |
|------------|-------------------------|-------------------------|
| NameServer | 2核CPU/4GB內存/50GB存儲 | 4核CPU/8GB內存/100GB存儲|
| Broker     | 4核CPU/8GB內存/500GB存儲| 8核CPU/16GB內存/1TB存儲 |

### 軟件要求
- 操作系統:Linux/Unix(CentOS 7+或Ubuntu 16.04+)
- JDK:1.8+(推薦OpenJDK 11)
- Maven:3.2+(僅源碼編譯需要)
- 磁盤:建議SSD,EXT4/XFS文件系統

### 網絡要求
- 確保服務器間網絡互通
- 開放以下默認端口:
  - NameServer:9876
  - Broker:10909(VIP端口),10911(主端口),10912(從端口)

## 單機模式部署

### 3.1 下載安裝包
```bash
# 下載最新二進制包(以4.9.4為例)
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
unzip rocketmq-all-4.9.4-bin-release.zip
cd rocketmq-all-4.9.4-bin-release

3.2 目錄結構解析

bin/        # 啟動腳本
conf/       # 配置文件
lib/        # 依賴庫
logs/       # 日志目錄
store/      # 消息存儲目錄(自動創建)

3.3 配置修改

編輯conf/broker.conf

# Broker標識(需唯一)
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0

# 存儲配置
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog

# NameServer地址
namesrvAddr=127.0.0.1:9876

# 內存配置(根據機器配置調整)
sendMessageThreadPoolNums=16
pullMessageThreadPoolNums=32

3.4 啟動NameServer

# 啟動NameServer(前臺運行)
nohup sh bin/mqnamesrv &

# 驗證啟動
tail -f ~/logs/rocketmqlogs/namesrv.log
# 看到"The Name Server boot success"表示成功

3.5 啟動Broker

# 指定配置文件啟動
nohup sh bin/mqbroker -c conf/broker.conf &

# 驗證啟動
tail -f ~/logs/rocketmqlogs/broker.log 
# 看到"The broker[broker-a, 192.168.1.100:10911] boot success"表示成功

# 測試消息發送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

集群模式部署

4.1 多Master模式

架構特點: - 所有節點都是Master - 配置簡單,性能最高 - 單點故障會導致部分消息不可用

部署步驟(以2節點為例): 1. 修改每臺機器的broker.conf

   # 節點1配置
   brokerClusterName=DefaultCluster
   brokerName=broker-a
   brokerId=0
   
   # 節點2配置
   brokerClusterName=DefaultCluster
   brokerName=broker-b
   brokerId=0
  1. 啟動所有NameServer(建議至少2個)

  2. 在各節點啟動Broker: “`bash

    節點1

    nohup sh bin/mqbroker -c conf/broker.conf -n “ns1:9876;ns2:9876” &

# 節點2 nohup sh bin/mqbroker -c conf/broker.conf -n “ns1:9876;ns2:9876” &


### 4.2 多Master多Slave模式
架構特點:
- 每個Master配置1個Slave
- 支持同步/異步復制
- 自動故障轉移,可用性高

部署示例(2M-2S):
1. Master配置:
   ```properties
   # master-a配置
   brokerRole=SYNC_MASTER
   flushDiskType=ASYNC_FLUSH
   
   # master-b配置
   brokerRole=SYNC_MASTER
   flushDiskType=ASYNC_FLUSH
  1. Slave配置: “`properties

    slave-a配置

    brokerRole=SLAVE brokerName=broker-a brokerId=1

# slave-b配置 brokerRole=SLAVE brokerName=broker-b brokerId=1


3. 啟動順序:
   ```bash
   # 先啟動NameServer
   # 再啟動所有Master
   # 最后啟動Slave

控制臺部署

RocketMQ官方提供可視化控制臺:

# 下載控制臺
git clone https://github.com/apache/rocketmq-dashboard.git
cd rocketmq-dashboard

# 修改配置
vim src/main/resources/application.yml
# 配置namesrvAddr和端口

# 打包運行
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.0.jar

訪問http://ip:8080即可查看: - 集群狀態 - Topic管理 - 消息軌跡 - 消費者組信息

生產環境調優建議

JVM參數優化

# NameServer示例(bin/runserver.sh)
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"
JAVA_OPT="${JAVA_OPT} -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

# Broker示例(bin/runbroker.sh)
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m"

操作系統優化

# 內核參數
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
echo 'fs.file-max=655350' >> /etc/sysctl.conf
sysctl -p

# 文件描述符
ulimit -n 655350

存儲優化

  1. 使用SSD并單獨掛載數據目錄
  2. 關閉atime更新:
    
    mount -o remount,noatime /data
    
  3. 建議CommitLog目錄單獨掛載

常見問題排查

啟動失敗問題

  1. 端口沖突

    netstat -tunlp | grep 9876
    kill -9 <PID>
    
  2. 磁盤空間不足

    df -h
    # 清理日志或擴容存儲
    
  3. JDK版本不兼容

    java -version
    # 確保使用JDK 1.8+
    

生產消費問題

  1. 消息堆積

    • 增加消費者實例
    • 調整消費線程數:consumer.setConsumeThreadMin(20)
  2. 消息重復

    • 實現冪等消費邏輯
    • 開啟消息軌跡追蹤

附錄

常用命令

# 查看Broker狀態
sh bin/mqadmin clusterList -n 127.0.0.1:9876

# 創建Topic
sh bin/mqadmin updateTopic -n 127.0.0.1:9876 -b 127.0.0.1:10911 -t TestTopic

# 查看消費進度
sh bin/mqadmin consumerProgress -n 127.0.0.1:9876 -g ConsumerGroup

參考資源

注:本文基于RocketMQ 4.9.4版本編寫,不同版本可能存在配置差異,請以官方文檔為準。 “`

該指南包含約4300字,采用標準的Markdown格式編寫,包含: 1. 完整的部署流程(單機/集群) 2. 配置優化建議 3. 問題排查方法 4. 可視化控制臺部署 5. 生產環境調優方案

可根據實際環境調整配置參數和部署架構。建議部署前仔細閱讀官方Release Notes獲取版本特定說明。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女