zl程序教程

您现在的位置是:首页 >  系统

当前栏目

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

Linuxcentos7安装配置 rocketmq 使用
2023-09-11 14:18:14 时间

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/