rocketmq本地调试访问

625 阅读1分钟

我们的环境全是基于K8S,基于helm方式在开发环境按照一套rocketmq后,需要本地连接rocketmq进行调试,发现无法连接broker,报错“sendDefaultImpl call timeout”。本文讲解如何解决的。

K8S安装

Kubernetes 部署高可用 RocketMQ 集群 - 掘金

github.com/itboon/rock…

根据上述资料在K8S集群中安装好rocketmq集群,本地访问报错 origin_img_v2_84dd2e38-cc1f-49f4-bff8-5444b59faa4g.jpg 本地需要连接broker,broker的地址是访问nameserver得到的,查看控制台

image.png 我们可以看到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集群不久好了。

虚拟机安装

  1. 申请一台虚拟机

  2. 按照docker和docker-compose RocketMQ使用Docker Compose部署及使用_芝士味的椒盐的技术博客_51CTO博客

  3. 安装rocketmq集群 blog.csdn.net/pushiqiang/…