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/