您的位置:

RocketMQ部署指南

一、RocketMQ部署难吗

要想真正了解RocketMQ部署难不难,还需要了解RocketMQ的架构和组件。RocketMQ采用分布式架构,有三个核心组件:NameServer、Broker和Consumer,其中NameServer记录Broker的地址信息,而Broker则存储了消息主体和消费者的消费进度。因此,RocketMQ的部署并不简单,需要考虑多种因素,包括消息的高可用、负载均衡、消息的保证性等。

因此,如果只是简单地想要搭建一套RocketMQ的系统,是很难的。但RocketMQ提供了一些工具,比如Docker、RocketMQ Operator等,可以帮助我们自动化地完成部署,因此,如果有技术团队完成了多次RocketMQ的部署,那么RocketMQ部署就不难了。

二、RocketMQ单机部署

RocketMQ单机部署比较简单,以下为步骤:

# 1、RocketMQ的安装
cd /usr/local/
wget http://mirror.bit.edu.cn/apache/rocketmq/4.9.1/rocketmq-all-4.9.1-bin-release.zip
unzip rocketmq-all-4.9.1-bin-release.zip
cd rocketmq-all-4.9.1-bin-release

# 2、NameServer的启动
nohup sh bin/mqnamesrv &

# 3、Broker的启动
nohup sh bin/mqbroker -n localhost:9876 &

# Note:其中第2步和第3步执行完毕后,你可以通过如下命令查看NameServer和Broker的进程:
ps -ef | grep mqnamesrv
ps -ef | grep mqbroker

三、RocketMQ部署单台

如果需要部署RocketMQ在单台机器上,需要针对具体场景进行调整。以下为基本流程:

1、在集群主机上部署NameServer和Broker,并按实际情况进行配置。

2、在生产者和消费者服务器上,需要安装RocketMQ的客户端,以便于与已经部署好的RocketMQ集群进行交互。

四、RocketMQ部署外网访问

如果需要在外网访问RocketMQ,需要将RocketMQ的网络端口放到公网IP,这就需要注意安全性,防止被攻击。又因为RocketMQ的网络架构比较复杂,不同的组件的网络端口也不同,所以这个过程需要考虑多方面的因素,比如是否需要设置防火墙、安全认证等。

五、RocketMQ部署方案

RocketMQ提供了多种部署方案,比如单机版、集群版、Docker版等。以下是其中一种常见的RocketMQ集群部署方案:

# 1、安装Java和Redis
yum install -y java-1.8.0-openjdk.x86_64
yum install -y redis

# 2、安装RocketMQ
wget https://mirror.bit.edu.cn/apache/rocketmq/4.9.1/rocketmq-all-4.9.1-bin-release.zip
unzip rocketmq-all-4.9.1-bin-release.zip

# 3、修改配置文件

# 4、启动NameServer
nohup sh bin/mqnamesrv &

# 5、启动Master Broker
nohup sh bin/mqbroker -c conf/broker.conf -n 127.0.0.1:9876 &

# 6、启动Slave Broker
nohup sh bin/mqbroker -c conf/broker-slave.conf -n 127.0.0.1:9876 &

# 7、创建Topic
sh bin/mqadmin updateTopic -n 127.0.0.1:9876 -c DefaultCluster -t MyTopic -r 1 -w 1

# 8、发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

# 9、消费消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

六、RocketMQ部署校验

为了确保RocketMQ已经部署成功,可以通过如下几种方式进行校验:

1、查看RocketMQ的端口是否正常启动;

2、使用RocketMQ客户端进行生产和消费操作,检查操作是否成功;

3、使用RocketMQ提供的监控工具RocketMQ Console,查看RocketMQ的状态和监控指标。

七、RocketMQ部署注意

在RocketMQ的部署过程中,需要关注以下几个方面:

1、部署服务器的硬件配置,比如CPU、内存等是否满足需求;

2、网络架构的合理设置,保证消息的稳定传输;

3、使用安全认证等措施,保证RocketMQ的安全性。

八、RocketMQ部署开启密码验证

为了增强RocketMQ的安全性,可以开启密码验证功能。以下为RocketMQ开启密码验证的步骤:

# 1、修改broker.conf文件
vi conf/broker.conf

# 2、在broker.conf中的brokerIP1处,添加如下配置
-Broker认证方式: 认证方式可以选择Plaintext或TLS才有效
brokerSaslEnabled=true(启用SASL认证)
brokerSaslHeader=true(启用Header认证)
brokerSaslRules=RULE:[PASSWORD=rocketmq1]PLAIN

# 3、重启RocketMQ Broker
sh bin/mqshutdown broker
nohup sh bin/mqbroker -c conf/broker.conf -n 127.0.0.1:9876 &

# 4、创建用户
sh bin/mqadmin updateBrokerConfig -g default-cluster -n 127.0.0.1:9876 -o add -k plain.username -v test
sh bin/mqadmin updateBrokerConfig -g default-cluster -n 127.0.0.1:9876 -o add -k plain.password -v rocketmq1

九、RocketMQ部署之后接受不到消息

可能会出现RocketMQ部署之后接受不到消息的情况,以下为可能的原因和解决方法:

1、消费端版本和生产端版本不一致,需要保持一致;

2、消费组的Group名称不一致;

3、网络故障,需要进行网络排查。

十、结语

在RocketMQ的部署过程中,需要根据不同的情况和实际需求进行配置。本文简单介绍了RocketMQ的部署流程和注意事项,希望对读者有所帮助。