CentOS7安装RocketMQ单机

  • Post author:
  • Post category:其他


1、下载apache最新rocketmq二进制压缩文件

64位操作系统,建议使用 Linux / Unix / Mac; 64位JDK 1.8+; Maven 3.2.x

如图:

2、解压安装

[root@localhost src]# unzip rocketmq-all-4.2.0-source-release.zip

3、环境变量

nameserver环境变量:vi /etc/profile

添加:ii



4、构建rocketMq

[root@localhost src]# cd rocketmq-all-4.2.0

[root@localhost rocketmq-all-4.2.0]# mvn -Prelease-all -DskipTests clean install -U

5、修改设置

启动broker时会卡顿,因为虚拟机内存和broker配置内存跟不上。

设置:给虚拟机预留1g的内存,这样启动时不太会卡:虚拟机设2g,nameserver和broker共用1g

bin目录:

vim

runserver.sh

修改前:

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

修改后:

JAVA_OPT=”${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”

bin目录:

vim

runbroker.sh

修改前:

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

修改后:

JAVA_OPT=”${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m”

6、启动mq

cd /usr/local/src/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin

启动 NameServer

[root@localhost bin]# nohup sh mqnamesrv &

查看日志:

启动 Broker

[root@localhost bin]# nohup sh mqbroker -n 10.164.239.5:9876 &

查看日志:

[root@iZuf6gb6l1wi8uxu45wfv1Z rocketmqlogs]# tail -200f broker.log



7、启动成功后警告

bin目录:

vi mqadmin.xml

vi mqbroker.xml

vi mqnamesrv.xml

vi mqfiltersrv.xml

删除红色部分:

vi tools.cmd

vi

tools.sh


vi …/benchmark/runclass.sh

删除红色部分:

8、发送和接受消息

在发送/接收消息之前,我们需要告诉客户名称服务器的位置。RocketMQ 提供了多种方法来实现这一点。为了简单起见,我们使用环境变量NAMESRV_ADDR

发送消息:

[root@localhost bin]# sh

tools.sh

org.apache.rocketmq.example.quickstart.Producer

消费消息:

[root@localhost bin]# sh

tools.sh

org.apache.rocketmq.example.quickstart.Consumer

9、调试过程中的问题

代码是基于springboot的简单示例

配置正确情况下,启动后尝试发布消息,仍报远程mq服务器topic不存在异常。

检查linux防火墙:service firewalld status

因centos7默认使用firewalld防火墙,而不是iptables,卸载firewalld,再安装iptables

步骤:

卸载firewalld:yum remove firewalld

安装iptables:yum install iptables-services

查看防火墙状态:service iptables status

停止防火墙:service iptables stop

启动防火墙:service iptables start

设为开机不启动:systemctl disable iptables.service

设为开机启动:systemctl enable iptables.service

如果要开启防火墙,则需要开放特定端口,例:开放3306端口

编辑:vi /etc/sysconfig/iptables

添加配置:-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT

重启防火墙使配置生效:systemctl restart iptables.service

其它相关命令:

查看防火墙规则:iptables -L

清空防火墙规则:iptables -F

保存使操作生效:/etc/sysconfig/iptables save

停止防火墙:/etc/sysconfig/iptables stop

10、关闭服务

sh mqshutdown namesrv

sh mqshutdown broker

或者通过jps查看进程,使用kill -9 pid结束进程(有时会看不见进程,但是服务仍在运行,建议用mqshutdown关闭服务)。

java -jar rocketmq-console/rocketmq-console-ng-1.0.0.jar



版权声明:本文为qq_17204557原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。