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/