我们的环境全是基于K8S,基于helm方式在开发环境按照一套rocketmq后,需要本地连接rocketmq进行调试,发现无法连接broker,报错“sendDefaultImpl call timeout”。本文讲解如何解决的。
K8S安装
Kubernetes 部署高可用 RocketMQ 集群 - 掘金
根据上述资料在K8S集群中安装好rocketmq集群,本地访问报错
本地需要连接broker,broker的地址是访问nameserver得到的,查看控制台
我们可以看到broker的地址都是pod的IP。容器集群外肯定访问不了。
指定 nodeSelector参数 brokerIP1 设置Worker的node ip
kubectl label nodes 100.30.40.82 foundation=rocketmq
config:
brokerRole: ASYNC_MASTER
deleteWhen: "04"
fileReservedTime: "48"
flushDiskType: "ASYNC_FLUSH"
waitTimeMillsInSendQueue: "1000"
transientStorePoolEnable: "true"
transferMsgByHeap: "false"
brokerIP1: "100.30.40.82"
affinityOverride: {}
tolerations: {}
nodeSelector:
foundation: rocketmq
还有一种简单的方法! 我们不就是测试环境有本地连接访问的需求嘛。那直接用docker-compose安装一台单机版的rocketmq集群不久好了。
虚拟机安装
-
申请一台虚拟机
-
按照docker和docker-compose RocketMQ使用Docker Compose部署及使用_芝士味的椒盐的技术博客_51CTO博客
-
安装rocketmq集群 blog.csdn.net/pushiqiang/…