RocketMQ(模式詳解,安裝)及控制臺安裝

下載

環境

64位操作系統,推薦 Linux/Unix/macOS
64位 JDK 1.8+

下載地址
https://rocketmq.apache.org/zh/download/
在這里插入圖片描述
RocketMQ 的安裝包分為兩種,二進制包源碼包。 二進制包是已經編譯完成后可以直接運行的,源碼包是需要編譯后運行的。

單臺服務

解壓,啟動服務

#解壓
unzip rocketmq-all-5.0.0-bin-release.zip
#切換目錄到RocketMQ根目錄
cd rocketmq-all-5.0.0-bin-release
#啟動Name Server
nohup sh bin/mqnamesrv &
# 驗證namesrv是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log
#啟動Broker+Proxy
nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
#驗證broker是否啟動成功
tail -f ~/logs/rocketmqlogs/broker_default.log

local模式集群

多組節點(集群)單副本模式

一個集群內全部部署 Master 角色,不部署Slave 副本,例如2個Master或者3個Master,這種模式的優缺點如下:
優點:配置簡單,單個Master宕機或重啟維護對應用無影響,在磁盤配置為RAID10時,即使機器宕機不可恢復情況下,由于RAID10磁盤非常可靠,消息也不會丟(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;
缺點:單臺機器宕機期間,這臺機器上未被消費的消息在機器恢復之前不可訂閱,消息實時性會受到影響。

服務器A和服務器B分別執行:

# 首先啟動NameServer
nohup sh mqnamesrv & 
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B分別執行:也可以只使用一個NameServer,我是使用兩個服務器的,以下同理。

# 服務器A:啟動第一個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties --enable-proxy &
# 服務器B:啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties --enable-proxy &

多節點(集群)多副本模式-異步復制

每個Master配置一個Slave,有多組 Master-Slave,HA采用異步復制方式,主備有短暫消息延遲(毫秒級),這種模式的優缺點如下:
優點:即使磁盤損壞,消息丟失的非常少,且消息實時性不會受影響,同時Master宕機后,消費者仍然可以從Slave消費,而且此過程對應用透明,不需要人工干預,性能同多Master模式幾乎一樣;
缺點:Master宕機,磁盤損壞情況下會丟失少量消息。

服務器A和服務器B分別執行:

# 首先啟動NameServer
nohup sh mqnamesrv & 
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B分別執行:

# 服務器A:啟動第一個Master,例:兩臺服務器NameServer的IP為:192.168.1.1192.168.1.2:9876
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties --enable-proxy &
# 服務器A:啟動第一個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties --enable-proxy & 
# 服務器B:啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties --enable-proxy &
# 服務器B:啟動第二個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties --enable-proxy & 

多節點(集群)多副本模式-異步復制

每個Master配置一個Slave,有多組 Master-Slave,HA采用異步復制方式,主備有短暫消息延遲(毫秒級),這種模式的優缺點如下:
優點:即使磁盤損壞,消息丟失的非常少,且消息實時性不會受影響,同時Master宕機后,消費者仍然可以從Slave消費,而且此過程對應用透明,不需要人工干預,性能同多Master模式幾乎一樣;
缺點:Master宕機,磁盤損壞情況下會丟失少量消息。

服務器A和服務器B分別執行:

# 首先啟動NameServer
nohup sh mqnamesrv & 
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B分別執行:

# 服務器A:啟動第一個Master,例:兩臺服務器NameServer的IP為:192.168.1.1192.168.1.2:9876
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties --enable-proxy &
# 服務器A:啟動第一個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties --enable-proxy & 
# 服務器B:啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties --enable-proxy &
# 服務器B:啟動第二個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties --enable-proxy & 

Cluster模式部署

在 Cluster 模式下,Broker 與 Proxy分別部署,我可以在 NameServer和 Broker都啟動完成之后再部署 Proxy。
在 Cluster模式下,一個 Proxy集群和 Broker集群為一一對應的關系,可以在 Proxy的配置文件 rmq-proxy.json 中使用 rocketMQClusterName 進行配置

單組節點單副本模式(單臺服務器)

這種方式風險較大,因為 Broker 只有一個節點,一旦Broker重啟或者宕機時,會導致整個服務不可用。不建議線上環境使用, 可以用于本地測試

# 首先啟動Name Server
nohup sh mqnamesrv &
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log
# 在服務器A,啟動第一個Master,例如NameServer的IP為:192.168.1.1
nohup sh bin/mqbroker -n 192.168.1.1:9876 &

多組節點(集群)單副本模式

一個集群內全部部署 Master 角色,不部署Slave 副本,例如2個Master或者3個Master,這種模式的優缺點如下:
優點:配置簡單,單個Master宕機或重啟維護對應用無影響,在磁盤配置為RAID10時,即使機器宕機不可恢復情況下,由于RAID10磁盤非常可靠,消息也不會丟(異步刷盤丟失少量消息,同步刷盤一條不丟),性能最高;
缺點:單臺機器宕機期間,這臺機器上未被消費的消息在機器恢復之前不可訂閱,消息實時性會受到影響。

服務器A和服務器B執行

# 首先啟動Name Server
nohup sh mqnamesrv &
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B執行

# 服務器A:啟動第一個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
# 在服務器B,啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &

多節點(集群)多副本模式-異步復制

每個Master配置一個Slave,有多組 Master-Slave,HA采用異步復制方式,主備有短暫消息延遲(毫秒級),這種模式的優缺點如下:
優點:即使磁盤損壞,消息丟失的非常少,且消息實時性不會受影響,同時Master宕機后,消費者仍然可以從Slave消費,而且此過程對應用透明,不需要人工干預,性能同多Master模式幾乎一樣;
缺點:Master宕機,磁盤損壞情況下會丟失少量消息。

服務器A和服務器B執行

# 首先啟動Name Server
nohup sh mqnamesrv &
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B執行

# 服務器A:啟動第一個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
# 服務器A:啟動第一個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &# 服務器B:啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
# 服務器B:啟動第二個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &

多節點(集群)多副本模式-同步雙寫

每個Master配置一個Slave,有多對 Master-Slave,HA采用同步雙寫方式,即只有主備都寫成功,才向應用返回成功,這種模式的優缺點如下:
優點:數據與服務都無單點故障,Master宕機情況下,消息無延遲,服務可用性與數據可用性都非常高;
缺點:性能比異步復制模式略低(大約低10%左右),發送單個消息的RT會略高,且目前版本在主節點宕機后,備機不能自動切換為主機。
服務器A和服務器B執行

# 首先啟動Name Server
nohup sh mqnamesrv &
# 驗證Name Server 是否啟動成功
tail -f ~/logs/rocketmqlogs/namesrv.log

服務器A和服務器B執行

# 服務器A:啟動第一個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
# 服務器A:啟動第一個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &# 服務器B:啟動第二個Master
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
# 服務器B:啟動第二個Slave
nohup sh bin/mqbroker -n 192.168.1.1:9876;192.168.1.2:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &

啟動 Proxy

# 服務器A,啟動第一個Proxy
nohup sh bin/mqproxy -n 192.168.1.1:9876;192.168.1.2:9876 &
# 服務器B,啟動第二個Proxy
nohup sh bin/mqproxy -n 192.168.1.1:9876;192.168.1.2:9876 &

若需要指定配置文件,可以使用 -pc或者 --proxyConfigPath 進行指定

### 自定義配置文件
nohup sh bin/mqproxy -n 192.168.1.1:9876 -pc /path/to/proxyConfig.json &

上文參考來源:
模式詳解:https://developer.aliyun.com/article/1261853
【Linux】RocketMQ-Cluster集群搭建
https://blog.csdn.net/qq_51228157/article/details/126967486
https://www.cnblogs.com/sunyonggao/p/17485244.html

rocketmq運維控制臺搭建

環境配置

jdk安裝,已安裝的可以跳過

#Centos
sudo yum install -y java-1.8.0-openjdk*

maven安裝及配置,已安裝的可以跳過

#Centos
sudo yum install -y maven.noarch
#配置
sudo vim /usr/share/maven/conf/settings.xml
<mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>       </mirror>
</mirrors>

獲取控制臺

先查看:
https://github.com/apache/rocketmq-externals.git
在這里插入圖片描述
會發現rocket-console不在里面了,rocket-console是之前的版本,現已經創建了一個獨立的倉庫并命名為RocketMQ Dashboard,地址在:https://github.com/apache/rocketmq-dashboard

安裝控制臺

git安裝,已安裝可以跳過
在這里插入圖片描述
拉取控制臺

git clone https://github.com/apache/rocketmq-dashboard.git

修改配置文件:修改server.port和rocketmq.config.namesrvAddrs(NameServer的地址(多個的話使用;連接))

單個:192.168.1.1:9876
多個:192.168.1.1:9876;192.168.1.2:9876
[root@localhost rocketmq-dashboard]# vim src/main/resources/application.yml

在這里插入圖片描述

編譯打包

失敗可以多嘗試幾次–可能是網絡問題

[root@localhost rocketmq-dashboard]# mvn clean package -Dmaven.test.skip=true

如果報以下錯誤:把pom.xml中的frontend-maven-plugin和maven-antrun-plugin插件注釋掉就能打包成功了

Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.11.3:yarn (yarn install) on project rocketmq-dashboard

打包成功在target文件夾下有jar包
在這里插入圖片描述
異常參考:https://www.bilibili.com/read/cv22491621

啟動:

nohup java -jar rocketmq-dashboard.jar >/mnt/logs/rocketmqlogs/consolelog.out 2>&1 &

啟動成功之后訪問:http://IP地址:8088
在這里插入圖片描述
控制臺參考資料:
https://tool.4xseo.com/a/8013.html
https://blog.csdn.net/so_geili/article/details/90142461
https://www.jianshu.com/p/5f70e34448ce
新版本RocketMQ配置Web管理界面:解決找不到rocketmq-console目錄問題:
https://blog.csdn.net/qq_43631716/article/details/119747200

詳細資料:https://blog.csdn.net/qq_37242720/article/details/126567047

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42421.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42421.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42421.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LVS負載均衡DR(直接路由)模式

在LVS&#xff08;Linux Virtual Server&#xff09;負載均衡中的DR&#xff08;Direct Routing&#xff09;模式下&#xff0c;數據包的流向如下&#xff1a; 客戶端發送請求到負載均衡器&#xff08;LVS&#xff09;的虛擬IP&#xff08;VIP&#xff09;。負載均衡器&#x…

基于C++ 的OpenCV繪制多邊形,多邊形多條邊用不用的顏色繪制

使用基于C的OpenCV庫來繪制多邊形&#xff0c;并且為多邊形的不同邊使用不同的顏色&#xff0c;可以按照以下步驟進行操作&#xff1a; 首先&#xff0c;確保你已經安裝了OpenCV庫并配置好了你的開發環境。 導入必要的頭文件&#xff1a; #include <opencv2/opencv.hpp&g…

Bryntum Scheduler Pro 5.5.1 Crack

BRYNTUM 調度程序專業版,專業的日程安排小部件 Bryntum Scheduler Pro 5.5.1 一個專業有大腦的調度UI組件。Scheduler Pro 可幫助您安排任務&#xff0c;同時考慮資源和任務的可用性。 連接您的任務 讓 Scheduler Pro 處理剩下的事情。它將根據您定義的鏈接安排您的任務并遵守任…

BNC連接器市場分析:全球BNC連接器市場規模不斷增長

產品定義及統計范圍 BNC&#xff08;Bayonet-Neill-Concelman&#xff09;連接器是一種通常用于視頻和音頻信號傳輸的電連接器。它是以其兩位發明者Paul Neill和Carl Concelman的名字命名的&#xff0c;他們在20世紀40年代末開發了這種連接器。BNC連接器是一種設計用于同軸電纜…

ansible 修改遠程主機nginx配置文件

安裝ansible brew install ansible 或者 pip3 install ansible 添加遠程主機 設置秘鑰 mac登錄遠程主機 ssh -p 5700 root192.168.123.211 ssh localhost #設置雙機信任 ssh-kyegen -t rsa #設置主機兩邊的ssh配置文件 vi /etc/ssh/sshd_config/ PermitRootL…

UniApp 制作高德地圖插件

1、下載Uni插件項目 在Uni官網下載Uni插件項目&#xff0c;并參考官網插件項目創建插件項目. 開發者須知 | uni小程序SDK 如果下載下來項目運行不了可以參考下面鏈接進行處理 UniApp原生插件制作_wangdaoyin2010的博客-CSDN博客 2、引入高德SDK 2.1 在高德官網下載對應SD…

207. 課程表

思路 首先要完全理解題意&#xff0c;這道題的[a,b]并不是b滿足了a就可以真正的學習a這門課了&#xff0c;因為a還有可能需要其他選修課的條件。類似下圖。 ??這題的思路在于使用合適的數據結構來存儲&#xff0c;這里用hash表來存儲如果1這門課可以修了之后&#xff0c;可以…

docker pull 設置代理 centos

On CentOS the configuration file for Docker is at: /etc/sysconfig/docker 用 root 權限打開 text editor sudo gedit 注意 加引號 Adding the below line helped me to get the Docker daemon working behind a proxy server: HTTP_PROXY“http://<proxy_host>:&…

linux下shell編寫軟件看門狗

遇到一個問題&#xff0c;就是軟件崩潰&#xff0c;可以讓軟件自動重啟&#xff0c;而且數據庫必須是軟件崩潰之前的 #!/bin/sh while true do /app/app/record -qws cp -pr /msata/db/db_record.db /data/log/db_record.db mv /msata/db/db_record1.db /msata/db/db_record.d…

ubuntu20.04磁盤滿了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%

問題 執行 mysql 大文件導入任務&#xff0c;最后快完成了&#xff0c;查看結果發現錯了&#xff01;悲催&#xff01;都執行了 兩天了 The table ‘XXXXXX’ is full &#xff1f; 磁盤滿了&#xff1f; 剛好之前另一個 centos 服務器上也出現過磁盤滿了&#xff0c;因此&a…

神經網絡基礎-神經網絡補充概念-30-搭建神經網絡塊

概念 搭建神經網絡塊是一種常見的做法&#xff0c;它可以幫助你更好地組織和復用網絡結構。神經網絡塊可以是一些相對獨立的模塊&#xff0c;例如卷積塊、全連接塊等&#xff0c;用于構建更復雜的網絡架構。 代碼實現 import numpy as np import tensorflow as tf from tens…

LeetCode 38題:外觀數列

題目 給定一個正整數 n &#xff0c;輸出外觀數列的第 n 項。 「外觀數列」是一個整數序列&#xff0c;從數字 1 開始&#xff0c;序列中的每一項都是對前一項的描述。 你可以將其視作是由遞歸公式定義的數字字符串序列&#xff1a; countAndSay(1) "1"countAnd…

Linux后門大全-inetd后門(一)

環境 靶機&#xff1a;Ubuntu 16.04.7 LTS &#xff08;最好使用相同的版本或更老的版本&#xff0c;inetd是非常老的系統服務管理工具&#xff09; 192.17.0.4 攻擊機&#xff1a; 安裝inetd apt update apt-get install openbsd-inetd #檢查是否安裝成功,如果文件存在就安…

【使用群暉遠程鏈接drive掛載電腦硬盤】

文章目錄 前言1.群暉Synology Drive套件的安裝1.1 安裝Synology Drive套件1.2 設置Synology Drive套件1.3 局域網內電腦測試和使用 2.使用cpolar遠程訪問內網Synology Drive2.1 Cpolar云端設置2.2 Cpolar本地設置2.3 測試和使用 3. 結語 前言 群暉作為專業的數據存儲中心&…

《TCP IP網絡編程》第十六章

第 16 章 關于 I/O 流分離的其他內容 16.1 分離 I/O 流 「分離 I/O 流」是一種常用表達。有 I/O 工具可區分二者&#xff0c;無論采用哪種方法&#xff0c;都可以認為是分離了 I/O 流。 2次 I/O 流分離&#xff1a; 第一種是第 10 章的「TCP I/O 過程」分離。通 shutdown(soc…

C++STL——deque容器詳解

縱有疾風起&#xff0c;人生不言棄。本文篇幅較長&#xff0c;如有錯誤請不吝賜教&#xff0c;感謝支持。 &#x1f4ac;文章目錄 一.deque容器的基本概念二.deque容器常用操作①deque構造函數②deque元素操作③deque賦值操作④deque交換操作⑤deque大小操作⑥deque插入和刪除…

el-form組件相關的一些基礎使用

el-checkbox 01.description 多選單選框 02.場景舉例 需要對每一條數據展示她的某些狀態是否存在 03.代碼展示 <el-checkbox v-model"query.isAutoAccptncsign" true-label1 false-label0 :disabled"ifReview?true:false">自動發起承兌應答</…

直方圖均衡化和自適應直方圖均衡化

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 均衡化是數字圖像處理中常用的一種技術&#xff0c;用于增強圖像的視覺效果和對比度。&#xff0c;今天我們將實現對同一張圖像的直方圖均衡化和自適應直方圖均衡化處理&#xff0c;學習一下兩者的的基本原理和實現過程&a…

MFC中的窗體繪制事件函數:OnCtlColor、OnPaint、OnNcPaint、OnDrawItem、OnEraseBkgnd、OnDraw

文章目錄 CWnd::OnCtlColorCWnd::OnPaintCWnd::OnNcPaintCWnd::OnDrawItemCWnd::OnEraseBkgndCWnd::InvalidateRectCView::OnDraw 參考&#xff1a;https://learn.microsoft.com/ CWnd::OnCtlColor 即將繪制子控件時&#xff0c;框架會調用此成員函數。 afx_msg HBRUSH OnCt…

React 高階組件(HOC)

React 高階組件(HOC) 高階組件不是 React API 的一部分&#xff0c;而是一種用來復用組件邏輯而衍生出來的一種技術。 什么是高階組件 高階組件就是一個函數&#xff0c;且該函數接受一個組件作為參數&#xff0c;并返回一個新的組件。基本上&#xff0c;這是從 React 的組成…