RocketMQ(4.2版本)外网部署及测试

摘要:
由于公司需要部署Rocket测试环境,但是公司虚拟机和公司的开发网络不在一个局域网。就想部署一个外网能够进行测试的RocketMQ环境。


部署:

参考官网:
https://rocketmq.apache.org/docs/quick-start/

rocketMQ下载地址(4.2版本):
https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip

安装步骤:

#解压
unzip -o rocketmq-all-4.2.0-source-release.zip
# 切入到rocketmq文件夹
cd rocketmq-all-4.2.0/
#mvn install
mvn -Prelease-all -DskipTests clean install -U
#建议进入bin目录进行执行命令
cd distribution/target/apache-rocketmq/bin

#启动 name server
#进入rocket命令目录
[root@node3 ~]# cd /home/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin/
#启动namesrv
[root@node3 bin]# nohup sh mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log

server启动成功:
RocketMQ(4.2版本)外网部署及测试_第1张图片

#启动broker
1、编写 broker.conf文件(命令编辑或者直接copy在本地编辑然后上传)
cd /home/rocketmq-all-4.2.0/distribution/conf
vim  broker.conf
i
添加一下内容:
#InetAddress用于网络接口,如果是虚拟机则配置的是虚拟机的外网ip
brokerIP1=122.114.164.162
#监听端口 ,也是外网映射端口(这里需要注意的是,外网端口和内网的10911端口需要一直,否则会出现 timeout问题)
listenPort=10911

2、开放内网和外网的映射端口
内网  外网
9876    24314
10911   10911
10909   10909(这个是vip通道端口,如果不使用则不需要设置)

3、启动broker
[root@node3 bin]# nohup sh mqbroker -n 122.114.164.162:24314 -c /home/rocketmq-all-4.2.0/distribution/conf/broker.conf & tail -f ~/logs/rocketmqlogs/broker.log

broker启动成功:
RocketMQ(4.2版本)外网部署及测试_第2张图片

注意:这里需要注意的是,映射10911端口的时候,外网端口和内网的10911端口需要一直,否则会出现 timeout问题,这好像是4.2版本的一个小bug

#测试
sh mqadmin sendMsgStatus -n 122.114.164.162:24314 -b broker-a -c 3

虚拟机测试成功:
image

#本地网络请求测试虚拟机
#pom.xml依赖
        
            org.apache.rocketmq
            rocketmq-store
            4.2.0
        
        
            org.apache.rocketmq
            rocketmq-client
            4.2.0
        

#测试代码:
    public static void main(String[] args) throws Exception {
        DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");

        producer.setNamesrvAddr("122.114.164.162:24314");

        producer.setVipChannelEnabled(false);
        producer.start();

        for (int i = 0; i < 100; i++){
            Message msg = new Message("TopicTest",
                    "TagA",
                    "OrderID188",
                    "Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
            SendResult sendResult = producer.send(msg);
            System.out.printf("%s%n", sendResult);
        }
        producer.shutdown();
    }

测试成功:
RocketMQ(4.2版本)外网部署及测试_第3张图片

补充:

相关的操作命令:
#显示当前系统的进程
jps 
# 查看对应进程id的详细信息
[root@node3 bin]# netstat -nap | grep 5896 

# 查看文件
vim runserver.sh
# 编辑状态
i
#退出编辑
esc
#保存退出
:wq
#强制退出
:q!

#结束broker 和namesrv 服务
[root@node3 bin]# sh ./mqshutdown broker
[root@node3 bin]# sh ./mqshutdown namesrv


RocketMQ架构图:
RocketMQ(4.2版本)外网部署及测试_第4张图片

你可能感兴趣的:(java)