RocketMQ:设置broker的对外IP

背景

最近在公司遇到这么一个问题:我在测试环境中搭建了一套RocketMQ,开发想要使用本机连接进行生产消费的测试,但是发现服务无法正常访问,报如下错误:

send heart beat to broker error {"fields": {"underlayError":{"Op":"dial","Net":"tcp","Source":null,"Addr":{"IP":"10.13.10.29","Port":10911,"Zone":""},"Err":{}}}}

分析

这个错误指的是本机向broker服务(10.13.10.29)发生心跳失败。开发尝试去telnet这个ip和端口,发现确实无法访问。然后我去云平台上查了一下这个broker机器,其ip为10.13.10.29,属于内网段ip,外界网络无法直接访问此ip。

解决方法

由于这台broker机器已绑定了外网IP,那是不是给broker服务配置一下外网IP就可以了呢?

于是我查了下broker的配置文件,发现确实有两个配置项可以做到:

brokerIP1:当前broker监听的IP。

brokerIP2:broker为master-slave模式时,broker的从节点通过brokerIP2和主节点进行连接。

如下图:我给broker配置brokerIP1为外网IP。

然后,重启broker服务。

这时候本机再通过nameserver去连接broker进行生产消费,就不会报ip和端口无法连上的问题了。

传送门:2021最新测试资料&大厂职位

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)

 

你可能感兴趣的:(运维&环境,测试不是一点点,踩坑指南,broker,rocketmq,外网)