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启动成功:
image

#启动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启动成功:
image

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

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

虚拟机测试成功:
image

#本地网络请求测试虚拟机
#pom.xml依赖
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-store</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>4.2.0</version>
        </dependency>

#测试代码:
    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();
    }

测试成功:
image

补充:

相关的操作命令:
#显示当前系统的进程
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架构图:
image

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值