Linux RocketMQ安裝配置和使用,Centos7 RocketMQ4安裝配置


Linux RocketMQ安裝配置和使用,Centos7 RocketMQ4安裝配置

 

================================

©Copyright 蕃薯耀 2020-12-28

https://www.cnblogs.com/fanshuyao/

 

一、RocketMQ解壓安裝

1、將rocketmq的二進制文件上傳到linux服務器目錄(cd /java):

rocketmq-all-4.8.0-bin-release.zip

2、解壓RocketMQ:

unzip rocketmq-all-4.8.0-bin-release.zip

提示unzip未找到命令:

[root@host_132 java]# unzip rocketmq-all-4.8.0-bin-release.zip 
-bash: unzip: 未找到命令

3、Linux安裝unzip和zip命令:

yum install -y unzip
yum install -y zip

4、重新解壓RocketMQ:

unzip rocketmq-all-4.8.0-bin-release.zip

5、解壓后,修改文件夾的名稱,改短一點:

mv rocketmq-all-4.8.0-bin-release rocketmq4

查看rocketmq4下的文件:

[root@host_132 java]# cd rocketmq4/
[root@host_132 rocketmq4]# ll
總用量 40
drwxr-xr-x. 2 root root   102 12月  9 19:46 benchmark
drwxr-xr-x. 3 root root  4096 12月  4 14:26 bin
drwxr-xr-x. 6 root root   211 12月  4 14:26 conf
drwxr-xr-x. 2 root root  4096 12月  9 19:46 lib
-rw-r--r--. 1 root root 17336 10月 23 10:29 LICENSE
-rw-r--r--. 1 root root  1338 12月  4 14:26 NOTICE
-rw-r--r--. 1 root root  5132 12月  4 14:26 README.md

 

二、RocketMQ配置環境變量

1、配置rocketMQ運行的環境變量,簡化命令,不用拼寫完整路徑:

vim /etc/profile

2、在文件的最后加上(記得要先裝jdk8,因為RocketMQ是Java開發,依賴jdk8):

ROCKETMQ_HOME=/java/rocketmq4
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH

3、讓環境變量配置立即生效:

source /etc/profile

 

三、RocketMQ日志文件修改

1、備份日志文件(修改前最好先備份):

cp /java/rocketmq4/conf/logback_broker.xml /java/rocketmq4/conf/logback_broker.xml.bak
cp /java/rocketmq4/conf/logback_namesrv.xml /java/rocketmq4/conf/logback_namesrv.xml.bak
cp /java/rocketmq4/conf/logback_tools.xml /java/rocketmq4/conf/logback_tools.xml.bak

2、修改日志的文件存放的目錄位置,默認是在${user.home},如root用戶在root目錄,其他用戶在home目錄:

sed -i "s/\${user.home}/\/java\/rocketmq4/g" logback_broker.xml
sed -i "s/\${user.home}/\/java\/rocketmq4/g" logback_namesrv.xml
sed -i "s/\${user.home}/\/java\/rocketmq4/g" logback_tools.xml

修改后日志存放位置:
/java/rocketmq4/logs/rocketmqlogs

 

四、RocketMQ啟動和運行時配置文件修改

1、RocketMQ啟動mqnamesrv,其中&符號表示后台運行

nohup sh mqnamesrv &

運行結果:

[root@host_132 bin]# nohup sh mqnamesrv &
[1] 1619
[root@host_132 bin]# nohup: 忽略輸入並把輸出追加到"nohup.out"

 

2、啟動后,使用jps查看Java進程(rocketMQ是Java開發的),如果沒發現有mqnamesrv的進程,說明啟動失敗(RocketMQ默認設置的內存過大導致啟動失敗)
解決方案,需要修改配置文件:

runserver.sh
runbroker.sh

runserver.sh:為nameService運行的配置
runbroker.sh:為broker運行的配置

 

3、RocketMQ NameServer內存過大啟動失敗,修改runserver.sh:

vim /java/rocketmq4/bin/runserver.sh

默認配置的內存很大,但虛擬機的內存是比較小的(如1G),內存不夠導致rocketMQ啟動失敗:

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

修改成(可以修改成256m):

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=100m"

 

4、RocketMQ Broker內存過大啟動失敗,修改runserver.sh:

vim /java/rocketmq4/bin/runbroker.sh

默認配置的內存很大:

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

修改成(可以修改成256m):

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

 

5、再次啟動mqnamesrv:

nohup sh mqnamesrv &

出現NamesrvStartup表示已經正常啟動:

[root@host_132 bin]# jps
1859 NamesrvStartup
1909 Jps

查看啟動日志(root用戶日志放在:/root/logs/rocketmqlogs,其它用戶放在/home/logs/rocketmqlogs):

tail -f /java/rocketmq4/logs/rocketmqlogs/namesrv.log

日志內容如下(重要的是:The Name Server boot success. serializeType=JSON):

[root@host_132 bin]# tail -f ~/logs/rocketmqlogs/namesrv.log
2020-12-24 15:37:49 INFO main - Using OpenSSL provider
2020-12-24 15:37:50 INFO main - SSLContext created for server
2020-12-24 15:37:50 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2020-12-24 15:37:50 INFO NettyEventExecutor - NettyEventExecutor service started
2020-12-24 15:37:50 INFO main - The Name Server boot success. serializeType=JSON
2020-12-24 15:37:50 INFO FileWatchService - FileWatchService service started
2020-12-24 15:38:50 INFO NSScheduledThread1 - --------------------------------------------------------
2020-12-24 15:38:50 INFO NSScheduledThread1 - configTable SIZE: 0
2020-12-24 15:48:50 INFO NSScheduledThread1 - --------------------------------------------------------
2020-12-24 15:48:50 INFO NSScheduledThread1 - configTable SIZE: 0

 

6、RocketMQ啟動broker,需要指定mqnamesrv,默認端口是9876

nohup sh mqbroker -n localhost:9876 &

查看進程,出現BrokerStartup表示啟動成功:

[root@host_132 bin]# jps
1859 NamesrvStartup
1990 BrokerStartup
2118 Jps

查看啟動日志:

tail -f /java/rocketmq4/logs/rocketmqlogs/broker.log

 

五、測試rocketMQ發送消息和接收消息(先進入bin目錄)

1、發送消息:

#先設置臨時環境變量
export NAMESRV_ADDR=localhost:9876 

#產生消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

2、接收消息

export NAMESRV_ADDR=localhost:9876 

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

 

六、關閉rocketMQ

關閉rocketMQ的命令:

sh mqshutdown broker

sh mqshutdown namesrv

結果:

[root@host_132 bin]# sh mqshutdown broker
The mqbroker(1986
1990) is running...
Send shutdown 

[root@host_132 bin]#
sh mqshutdown namesrv The mqnamesrv(1844 1859) is running... Send shutdown request to mqnamesrv(1844 1859) OK

 

 七、Linux RocketMQ雙主雙從,Centos7 RocketMQ4集群(雙主雙從)

地址見:

https://www.cnblogs.com/fanshuyao/p/14200573.html

 

 

(如果文章對您有所幫助,歡迎捐贈,^_^)

 

================================

©Copyright 蕃薯耀 2020-12-28

https://www.cnblogs.com/fanshuyao/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM