前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记在使用rocketmq client客户端过程中踩到的坑

记在使用rocketmq client客户端过程中踩到的坑

作者头像
lyb-geek
发布2018-12-29 11:29:02
14.6K1
发布2018-12-29 11:29:02
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

前言

最近项目中使用阿里的rocketmq来做消息队列,具体怎么使用rocketmq不在本文讨论范围之内,其相关帮助文档可以参考如下链接

https://help.aliyun.com/product/29530.html?spm=a2c4g.11186623.6.540.afd02578y4vHe4

本文主要记录在使用rocketmq client时,遇到的一些坑,作者采用的客户端版本是4.2

踩到的坑

1、No route info of this topic

遇到这种情况的原因可能有

1、Broker禁止自动创建Topic,且用户没有通过手工方式创建Topic

解决方案

在启动broker时加上 autoCreateTopicEnable=true,如果是用broker.conf启动,或者集群使用broker-*启动,形如:

代码语言:javascript
复制
nohup sh /oa/other/rocketmq/bin/mqbroker -c /oa/other/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

broker-a.properties配置文件中加入

代码语言:javascript
复制
autoCreateTopicEnable=true

2、Broker没有正确连接到Name Server

解决方案

查看broker.log 日志信息

3、Producer没有正确连接到Name Server

解决方案

代码语言:javascript
复制
切换到rocketmq的bin目录,执行
sh mqadmin clusterList -n 安装rocketmqip地址:9876

如果出现

代码语言:javascript
复制
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster    broker-a                0     ip:10911      V4_2_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 429243.32 0.2995

说明正常连接

4、防火墙原因

解决方案

关闭防火墙(生产环境不建议),开放rocketmq的相应端口,或者加入相应的可以访问rocketmq的ip

5、topic的长度过长

这个有待验证

2、connect to <ip:10909> failed

产生的原因

rocketmq默认开启了vip通道

解决方案:

在客户端代码层面加入

代码语言:javascript
复制
producer.setVipChannelEnabled(false);
consumer.setVipChannelEnabled(false);

3、Send [3] times, still failed, cost [575]ms, Topic: Name, BrokersSent: [broker-a, broker-a, null]

1、如果出现开始发送消息成功,消费者接收消息后,再发送消息的话,出现上诉异常,则有很大概率是机器磁盘空间不足

解决方案

1、df -lh 查看磁盘空间大小 2、top 查看%MEM%占用前五的进程 3、按需删除没用的磁盘空间

2、检查网络是否畅通

消息队列网络方面的排查,请参考:

http://help.aliyun.com/knowledge_detail/6671409.html?spm=5176.789006189.3.6.UbsCt3

3、如果是使用虚拟机,可能虚拟机中的网络太多,rocketMQ在自动识别网络的时候识别错误。

解决方案

可以把其他网络down掉,或者把想用的那个网让它排在前面

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 踩到的坑
    • 1、No route info of this topic
      • 2、connect to <ip:10909> failed
        • 3、Send [3] times, still failed, cost [575]ms, Topic: Name, BrokersSent: [broker-a, broker-a, null]
        相关产品与服务
        消息队列 CMQ 版
        消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档