RocketMQ5.3.1的安裝

1、下載安裝
RocketMQ 的安裝包分為兩種,二進制包和源碼包。1 下載 Apache RocketMQ 5.3.1的源碼包后上傳到linux
https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解壓編譯
$ unzip rocketmq-all-5.3.1-source-release.zip
$ cd rocketmq-all-5.3.1-source-release/
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U編譯需要好幾分鐘
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:35 min
[INFO] Finished at: 2024-10-24T11:27:32+08:00
[INFO] -------------------------------------------$ cd distribution/target/rocketmq-5.3.1/rocketmq-5.3.1[root@localhost rocketmq-5.3.1]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1
[root@localhost rocketmq-5.3.1]# ls
benchmark  bin  conf  lib  LICENSE  NOTICE  README.md2 修改啟動參數
2.1修改broker的運行腳本,內存不夠可以適當的修改broker啟動參數[root@localhost bin]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/bin[root@localhost bin]# vim runbroker.sh
ESC: set number 可以顯示行數找到如下參數:-server -Xms8g -Xmx8g 看著改,只要能啟動就行
改成 -server -Xms2g -Xmx2g
改成-server -Xms1g -Xmx1g 
改成-server -Xms256m -Xmx256m101 choose_gc_log_directory
103 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"2.2 修改nameServer的運行腳本, 修改89和94行-server -Xms4g -Xmx4g -Xmn2g
看著改,只要能啟動就行
改成-server -Xms1g -Xmx1g -Xmn512m
改成-server -Xms2g -Xmx2g -Xmn1g
改成-server -Xms256m -Xmx256m -Xmn128m89       JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"90       JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabl    ed -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"91       JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"92       JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"93     else94       JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"2.3 修改代理的端口默認是8080和8081修改成9080和9081,要不然8080可能會和tomcat的端口沖突
[root@localhost conf]# vi rmq-proxy.json
{"rocketMQClusterName": "DefaultCluster","remotingListenPort": 9080,"grpcServerPort": 9081
}3 修改broker的配置文件,設置可以自動創建主題。
進入conf目錄下,修改broker.conf文件[root@localhost conf]# pwd
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/conf[root@localhost conf]# vim broker.conf
autoCreateTopicEnable=trueautoCreateTopicEnable:自動創建主題,不然需要手動創建出來
namesrvAddr:nameSrv地址可以寫localhost因為nameSrv和broker在一個服務器,也可以用參數指定4 創建日志目錄
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/
mkdir logs5 啟動NameServer后臺模式啟動,進入到bin目錄,執行如下命令,如果不想后臺啟動的話就進入bin目錄后./mynamesrv
/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/5.1 需要先啟動Name Server
nohup sh bin/mqnamesrv > ./logs/namesrv.log &#!/bin/bash
nohup sh bin/mqnamesrv > ./logs/namesrv.log &
nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&
exit 0[root@localhost rocketmq-5.3.1]# nohup sh bin/mqnamesrv > ./logs/namesrv.log &5.2 查看日志
[root@localhost rocketmq-5.3.1]# cat logs/namesrv.logJava HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON, address 0.0.0.0:98766、啟動Broker+Proxy
NameServer成功啟動后,我們啟動Broker和Proxy。這里我們使用 Local 模式部署,即 Broker 和 Proxy 同進程部署
進入到bin目錄先啟動broker
nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&[root@localhost rocketmq-5.3.1]# nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&也可以指定配置文件-c  conf/broker.conf,用-pc conf/proxyConfig.json來改默認占用的8080和8081端口,改端口看下面的備注。 nohup bin/mqbroker -n 127.0.0.1:9876 -pc conf/proxyConfig.json --enable-proxy &nohup sh bin/mqbroker -c  conf/broker.conf -n 192.168.150.50:9876 --enable-proxy> ./logs/broker.log&
[root@localhost logs]# cat broker.log
Thu Oct 24 15:17:52 CST 2024 rocketmq-proxy startup successfullyhttp://localhost:9999/rocketmq/send[root@localhost logs]# cat broker.log
Unrecognized VM option 'UseBiasedLocking'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.Jdk21偏向鎖被廢棄了,移除這個VM參數
打開rocketmq 的/bin/runbroker.sh,移除UseBiasedLocking參數。JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"或許出現的其他問題
RocketMQ連接異常sendDefaultImpl call timeout裝并啟動好RocketMQ后,在代碼中遠程連接RocketMQ,報以下錯誤:org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException:sendDefaultImpl call timeout at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:588)at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1223)at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1173)at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:214)at com.flying.demo.Producer.main(Producer.java:25)這個錯誤其實是啟動RocketMQ的namesrv,broker沒有指IP。
假如IP是:192.168.1.135
那么啟動namesrv時,用以下方法:
nohup sh bin/mqnamesrv -n "192.168.1.135:9876" &
啟動broker時,用以下方法:
修改conf/broker.conf,加入:brokerIP1=192.168.1.135
啟動:nohup ./bin/mqbroker -n localhost:9876 -c conf/broker.conf autoCreateTopicEnable=true &備注:啟動失敗如果是8080端口已經綁定可以修改端口 ========================RocketMQ5.0.0 版本增加了 Proxy 模塊,啟動時默認會用到 8081 端口,當端口被占用時,broker/proxy 將無法啟動,修改 proxy 端口方法如下:(1)在 conf 目錄下修改rmq-proxy.json 文件,注意文件格式為 json,所以內容須為 json 格式;private int remotingListenPort = 8080;private Integer grpcServerPort = 8081;{// 代理監聽端口"remotingListenPort": 9080,// gRPC服務器端口"grpcServerPort": 9081,// 對應namesr的ip,這個單機的時候可以不用加,集群的沒測試過"namesrvAddr":"123.45.67.891:6789;198.76.54.321:6789"
}修改代理的端口默認是8080和8081
[root@localhost conf]# vi rmq-proxy.json
{"rocketMQClusterName": "DefaultCluster","remotingListenPort": 9080,"grpcServerPort": 9081
}=================================================================7. 關閉服務器和開機自啟
進入到/usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1/目錄執行sh bin/mqshutdown namesrv
sh bin/mqshutdown broker8 使用代碼測試[root@localhost bin]# sh mqadmin updateTopic -n 192.168.150.50:9876 -b 192.168.150.50:10911 -t MyTopic -w 4 -r 4create topic to 192.168.150.50:10911 success.
TopicConfig [topicName=MyTopic, readQueueNums=4, writeQueueNums=4, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false, attributes={}]-n 192.168.150.50:9876:Name Server地址。
-b 192.168.150.50:10911:Broker地址。
-t MyTopic:主題名稱。
-w 4:寫隊列數量。
-r 4:讀隊列數量。下面的內容還沒測試到9 測試
在進行工具測試消息收發之前,我們需要告訴客戶端NameServer的地址,RocketMQ有多種方式在客戶端中設置NameServer地址,這里我們利用環境變量NAMESRV_ADDR
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer10 在rocketmq-dashboard查看消息,也可以直接用程序測試1. docker 鏡像安裝
① 安裝docker,拉取 rocketmq-dashboard 鏡像
docker pull apacherocketmq/rocketmq-dashboard:latest② docker 容器中運行 rocketmq-dashboard
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.150.50:9876" -p 9999:9999 -t apacherocketmq/rocketmq-dashboard:latest進入容器內部
docker exec -it 05ac89fbf3dd /bin/bash
docker cp 05ac89fbf3dd:/rocketmq-dashboard.jar /=============================================================================================2 rocketmq-dashboard的使用
https://rocketmq.apache.org/zh/docs/deploymentOperations/04Dashboardhttp://192.168.150.50:8001

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

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

相關文章

FunASR實時多人對話語音識別、分析、端點檢測

核心功能:FunASR是一個基礎語音識別工具包,提供多種功能,包括語音識別(ASR)、語音端點檢測(VAD)、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。FunASR提供了便捷的腳本和…

opencv--day01--opencv基礎知識及基礎操作

文章目錄前言一、opencv基礎知識1.opencv相關概念1.1背景1.2特點1.3主要功能與應用1.4.opencv-python2.計算機中的圖像概念2.1圖像表示2.2圖像存儲彩色圖像二、opencv基礎操作1.圖像的讀取2.圖像的顯示3.保存圖像4.創建黑白圖及隨機像素彩圖5. 圖像切片(圖片剪裁&am…

如何撤銷Git提交誤操作

要撤銷在主分支上的 git add . 和 git commit 操作,可以按照以下步驟安全回退: 完整回退步驟: # 1. 查看提交歷史,確認要回退的commit git log --oneline# 示例輸出: # d3f4g7h (HEAD -> main) 誤操作提交 # a1b2c3…

React+Three.js實現3D場景壓力/溫度/密度分布可視化

本文介紹了一個基于React和Three.js的3D壓力可視化解決方案,該方案能夠: 加載并渲染3D壓力模型數據 提供動態顏色映射功能,支持多種顏色方案:彩虹-rainbow,冷暖-cooltowarm,黑體-blackbody,灰度-grayscale 實現固定位置的顏色圖…

Go 官方 Elasticsearch 客戶端 v9 快速上手與進階實踐*

1、為什么選擇 go-elasticsearch? 版本同步:與 Elasticsearch 主版本保持一一映射,當前穩定分支為 v9,對應 ES 9.x 系列。(GitHub)完全覆蓋 REST API:所有 HTTP 端點都有等價方法,避免手寫 JSON/HTTP。可插…

`/etc/samba/smb.conf`筆記250720

/etc/samba/smb.conf筆記250720 /etc/samba/smb.conf 是 Samba 服務的核心配置文件,用于實現 Linux/Unix 與 Windows 系統間的文件和打印機共享。以下詳解其結構和常用參數: 配置文件結構 1. 全局設置段 [global] 控制 Samba 服務器的整體行為。 …

Java從入門到精通!第十六天,重點!(多線程和線程池)

一、多線程1.基本概念(1)程序(Program):為了完成特定的任務,用某種計算機語言編寫的一組指令的集合,即指一段靜態的代碼(源代碼經編譯之后形成的二進制格式的文件&#x…

軌道交通為什么要有信號系統?

軌道交通為什么要有信號系統?軌道交通信號系統與公路信號系統有什么不同? 在軌道交通中信號系統是必不可少的,其根本原因在于:在軌道交通中已經沒有辦法純靠人力去保證行車安全。 在公路交通中,信號其實是起輔助作用的…

docker 掛載卷

以下是針對您遇到的問題分步解答和解決方案:一、核心結論 ? 可以采用目錄方式:您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正確的目錄掛載語法。 ? 看不到新文件的可能原因主要集中在 權限問題、緩存機制 或 操作順序錯誤 上。二、…

uniapp 報錯 Not found ... at view.umd.min.js:1的問題

問題描述: uniapp的app中,當頁面中使用多個v-if后會出現這個報錯解決方案: 1、在v-if的地方加上key屬性(key屬性要保證唯一) 2、用v-show替換v-if(不建議,可能會影響業務)

水電站自動化升級:Modbus TCP與DeviceNet的跨協議協同應用

水電站的自動化系統就像一個精密的“神經中樞”,既要應對水流變化帶來的動態負載,又得保證閘門啟閉、水輪機調節等關鍵動作的精準性。我們去年參與的某水電站改造項目里,就遇到了一個典型問題:中控室的施耐德PLC采用Modbus TCP協議…

基于Matlab圖像處理的火災檢測系統設計與實現

隨著計算機視覺技術的快速發展,基于圖像處理的火災檢測系統在安全監控領域的應用得到了廣泛關注。本文提出了一種基于圖像處理的火災檢測系統,該系統通過對圖像進行預處理、顏色空間轉換、閾值化處理和形態學分析,自動檢測火災疑似區域。首先…

信息學奧賽一本通 1593:【例 2】牧場的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G

【題目鏈接】 ybt 1593:【例 2】牧場的安排 洛谷 P1879 [USACO06NOV] Corn Fields G 【題目考點】 1. 狀壓動規 【解題思路】 集合狀態:n個元素中,選擇x個元素構成的集合,可以由一個n位二進制數表示。第i位為1表示選擇第i個元…

SpringBoot創建項目的方式

一、Idea Spring initializr創建(Spring 官網下載) Spring官網只支持SpringBoot3.0以上,JDK17以上 二、idea Spring inst創建(阿里云下載) 阿里云可以支持JDK8的版本 Spring版本選擇2.7.6,選擇合適的依賴添…

云原生 —— K8s 容器編排系統

一、 簡介Kubernetes,也稱為K8s,是一個開源的容器編排系統,用于自動部署、擴展和管理容器化應用程序,幫助開發者更高效地跨集群管理應用。本文總結了 k8s 的基礎概念和技術架構。二、基礎概念1. 云原生(Cloud Native…

SQLite中SQL的解析執行:Lemon與VDBE的作用解析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 在 SQLite 的內部實現中,SQL 語句的解析與執行是一個精妙的過程,涉及詞法分析、語法分析、中間代碼生成與執行等多個環節。其中,Lemon 工具和 VDBE(Virtual Database Engine…

C++學習筆記(十:類與對象基礎)

往篇內容: C學習筆記(一) 一、C編譯階段※ 二、入門案例解析 三、命名空間詳解 四、C程序結構 C學習筆記(二) 五、函數基礎 六、標識符 七、數據類型 補充:二進制相關的概念 sizeof 運算符簡介 補…

圖片查重從設計到實現(4)圖片向量化存儲-Milvus 單機版部署

Milvus 單機版部署 在 Docker 環境下安裝、應用和配置 Milvus 向量數據庫可以按照以下步驟進行,涵蓋從安裝到基礎應用的完整流程: 1. 部署前準備 服務器:建議測試環境配置 2 核 CPU、8GB 內存;處理 100 萬組向量數據,…

前端版本更新檢測機制

📌 一、為什么需要前端版本更新檢測機制?在現代 Web 項目中,我們通常會通過 CDN 或緩存策略來加快頁面加載速度,但這也帶來了一個問題:用戶可能訪問的是舊版本的頁面或資源,而不會自動更新到最新版本。這在…

Python(09)正則表達式

特殊字符 1. 基本元字符 .:匹配除換行符以外的任意單個字符。 *:匹配前面的元素零次或多次。 :匹配前面的元素一次或多次。 ?:匹配前面的元素零次或一次。 2. 定量符 {n}:匹配前面的元素恰好 n 次。 {n,}:…