rocketmq遇到的一次问题记录(代码片段)

thinkingandworkinghard thinkingandworkinghard     2022-12-02     393

关键词:

      今天上线时候碰到这么一个问题:由于上游生产者地址修改了,项目里面原来的消费者地址也要跟着修改。由于项目里面有两个消费者,之前的地址都是一样的。但是是两个不同的消费者,业务也是不同的。但是今天修改了第一个消费者的地址后,通过rocketmq的界面 发现 第二个的实例竟然也跑到了第一个上面。 

问题如下:

   技术图片

 

 

 

然后修改后如下:

 技术图片

 

 

 

消费者的配置文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:cache="http://www.springframework.org/schema/cache"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd
">
    <!-- 订单状态变化时,统计相关的数据BEGIN -->
    <!--<bean id="statisticsOrderConsumer"  class="com.zhuanche.common.rocketmq.CommonRocketConsumer" init-method="init" destroy-method="destroy">
        <property name="groupName" value="mp-manage"/>&lt;!&ndash; 消费组名称,注意:相同的组名在同一个JVM中只能配置为一个 &ndash;&gt;
        <property name="namesrvAddr" value="$rocketmq.namesrvAddr"/>&lt;!&ndash; RocketMQ命名服务地址 &ndash;&gt;
        <property name="consumeFromWhere" value="CONSUME_FROM_LAST_OFFSET"/>&lt;!&ndash; 消费起点 &ndash;&gt;
        <property name="messageModel" value="CLUSTERING"/>&lt;!&ndash; 消费模式 &ndash;&gt;
        <property name="topic" value="car_XXXXXXXXXXXX_canal_new"/>&lt;!&ndash; RocketMQ TOPIC &ndash;&gt;
        <property name="tags" value="1_40 || 1_43 || 1_44 || 1_45 || 1_50 || 2_40 || 2_43 || 2_44 || 2_45 || 2_50"/>&lt;!&ndash; RocketMQ TAG &ndash;&gt;
        <property name="messageBatchMaxSize" value="10"/>&lt;!&ndash; 每次消费消息的最大数量 &ndash;&gt;
        <property name="threads" value="2"/>&lt;!&ndash; 并发消费线程数 &ndash;&gt;
        <property name="messageListener"  ref="consumeOrderChangeForStatisticsListener"/>&lt;!&ndash; 业务消息处理实现类 &ndash;&gt;
    </bean>-->
    <!-- 订单状态变化时,统计相关的数据END -->

    <!--城际拼车监听-->
    <bean id="newInterCity"  class="com.zhuanche.common.rocketmq.CommonRocketConsumer" init-method="init" destroy-method="destroy" scope="singleton">
        <property name="groupName" value="mp-newInterCity"/><!-- 消费组名称,注意:相同的组名在同一个JVM中只能配置为一个 -->
        <property name="namesrvAddr" value="$rocketmqcity.namesrvAddr"/><!-- RocketMQ命名服务地址 -->
        <property name="consumeFromWhere" value="CONSUME_FROM_LAST_OFFSET"/><!-- 消费起点 -->
        <property name="messageModel" value="CLUSTERING"/><!-- 消费模式 -->
        <property name="topic" value="car_fact_order_canal_msg"/><!-- RocketMQ TOPIC -->
        <property name="tags" value="1_13"/><!--监听订单组的tag 注意tag格式-->
        <property name="messageBatchMaxSize" value="10"/><!-- 每次消费消息的最大数量 -->
        <property name="threads" value="2"/><!-- 并发消费线程数 -->
        <property name="messageListener" >
            <bean class="com.zhuanche.common.listen.NewInterCityListener"/>
        </property>
    </bean>


    <!--城际拼车监听主订单-->
    <bean id="mainInterCityConsumer"  class="com.zhuanche.common.rocketmq.MainInterCityConsumer" init-method="init" destroy-method="destroy" scope="singleton">
        <property name="groupName" value="mainListenerConsumer"/><!-- 消费组名称,注意:相同的组名在同一个JVM中只能配置为一个 -->
        <property name="namesrvAddr" value="$rocketmqMain.namesrvAddr"/><!-- RocketMQ命名服务地址 -->
        <property name="consumeFromWhere" value="CONSUME_FROM_LAST_OFFSET"/><!-- 消费起点 -->
        <property name="messageModel" value="CLUSTERING"/><!-- 消费模式 -->
        <property name="topic" value="carpool_mainorder"/><!-- RocketMQ TOPIC -->
        <property name="tags" value="15 || 60 || 30"/><!--监听订单组的tag 注意tag格式-->
        <property name="messageBatchMaxSize" value="10"/><!-- 每次消费消息的最大数量 -->
        <property name="threads" value="2"/><!-- 并发消费线程数 -->
        <property name="messageListener" >
            <bean class="com.zhuanche.common.listen.MainInterCityListener"/>
        </property>
    </bean>
</beans>

 

这个时候通过rocketmq的界面发现:

技术图片

 

 

 发现都跑到了修改后的一个上面了。

 

然后看源码,发现有个问题:默认 的instance都是default

 

技术图片

 

 

 

 

最后上网查询,才发现这个是需要在代码里面设置的。要不都会跑到同一个实例上面。

 

技术图片

 

 

 解决办法就是设置不同的实例名字就行了。

 

 
consumer.setInstanceName(System.currentTimeMillis()+"**");

 

recyclerview中出现item重复问题的一次记录(代码片段)

问题背景前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。这种重复笔记总是出现的feed流的中间位置,如下示意图所示:这个图画的有点丑,凑合看,意思大概就是这样的... 查看详情

粗糙记录网站加载过慢的一次排查经历(代码片段)

...境的站点打开很慢,让我排查一下。作为菜鸟,还是首次遇到这样的问题,于是使用top查看系统资源,以CPU和内存分别排序查看,情况如下图:从负载上看loadaverage:0.51,0.98,1.12并无异常,这里说明一下服务器使用的是阿里云ECS,2... 查看详情

一次rocketmq顺序消费延迟的问题定位(代码片段)

一次RocketMQ顺序消费延迟的问题定位问题背景与现象昨晚收到了应用报警,发现线上某个业务消费消息延迟了54s多(从消息发送到MQ到被消费的间隔):2021-06-30T23:12:46.756messageprocessingisincrediblydelayed!(Currentdelaytime:547... 查看详情

recyclerview中出现item重复问题的一次记录(代码片段)

问题背景前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。这种重复笔记总是出现的feed流的中间位置,如下示意图所示:这个图画的有点丑,凑合看,意思大概就是这样的... 查看详情

记录一次bug修复-entityframworksavechanges()失效(代码片段)

...六、总结一、前言这是笔者在参与一个小型项目开发时所遇到的一个BUG,因为项目经验不足对EntityFramwork框架认识不足导致了这一BUG浪费了一天的时间,特此在这里记录。给自己一个警醒希望大家遇到相同问题能帮助到大家。注... 查看详情

记录一次bug修复-entityframworksavechanges()失效(代码片段)

...六、总结一、前言这是笔者在参与一个小型项目开发时所遇到的一个BUG,因为项目经验不足对EntityFramwork框架认识不足导致了这一BUG浪费了一天的时间,特此在这里记录。给自己一个警醒希望大家遇到相同问题能帮助到大家。注... 查看详情

记录一下近期项目中遇到得小问题(代码片段)

1.PostMan使用1.使用postMan进行请求,记得添加Headers信息   2.记录一次遇到得小坑,在PostMman请求一个接口信息时候ResponseVo<XXXXResVo>queryXXXXManage(XXXXReqVoXXXXReqVo);XXXXReqVo对象为publicclassXXXReqVoprivateStringpin 查看详情

一次rocketmq进程自动退出排查经验分享(实战篇)(代码片段)

1、背景公司一个RocketMQ集群由4主4从组成,突然其中3台服务器“竟然”在同一时间下线,其监控显示如下:依次查看三台机器的监控图形,时间戳几乎完美“吻合”,不可思议吧。2、故障分析出现问题,先二话不说,马上重启... 查看详情

关于工具使用的一次问答记录(代码片段)

Q:今天有人问我lsof是怎么实现的?然后当时在想要是我应该怎么实现?通过每个进程的file_tablelist出来!!!实际上怎么出来的呢??strace lsof结果可知就是通过读取/proc/pid/fdinfo。。。。。。。。。。。。。。平时会用到proc/... 查看详情

它来了!靶机渗透题目的一次实战记录(代码片段)

0x00题目介绍Sink是HackTheBox上一道难度是insane的Linux靶机,做了很久HackTheBox,第一次做insane难度的,还是学到了很多东西的,在这里跟大家分享一下。题目主要涉及到的知识点是:HAProxyHTTPrequestsmuggling(CVE-2019-1827... 查看详情

记一次修改sga大小之后出现的一系列报错(代码片段)

记录一次修改sga大小之后出现的一系列报错修改了oracle的sga大小之后,遇到了一系列的报错。00844和00851报错SQL>startup;ORA-00844:ParameternottakingMEMORY_TARGETintoaccountORA-00851:SGA_MAX_SIZE2147483648cannotbesettomorethanMEMSQL>01078报错S 查看详情

记录一次signalr服务的搭建注意事项(代码片段)

最近在开发中遇到一个需要给现有客户端推送信息的需求,于是就准备尝试一下SignalR,并做此记录,记录在搭建SignalR过程中遇到的问题。1.SignalRWinForm服务端搭建添加相关引用那些我就不在这里详细介绍了,就记录一些注意事项... 查看详情

docker以挂载方式安装rocketmq(代码片段)

Docker挂载安装RocketMQ在Docker中安装和使用RocketMQ有多种方式,其中一种方式就是通过挂载本地文件的方式安装RocketMQ。挂载的方式可以避免重启Docker镜像后,原配置丢失的问题。第一次安装RocketMQ时难免踩坑,但是请保... 查看详情

第一次使用loadrunner时遇到的问题(代码片段)

记录一下第一次使用LoadRunner时遇到的问题安装LoadRunner下载链接:ed2k://|file|%5B%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7LR11.00%5D.loadrunner-11.iso|4313382912|b95afeb3a879c6b8146435bb79e8cb97|h=nt 查看详情

rocketmq主题扩分片后遇到的坑(代码片段)

目录1、案情回顾1.1集群现状1.2、RocketMQ在线扩容队列1.3消息发送2、问题暴露3、问题分析4、问题复盘消息组接到某项目组反馈,topic在扩容后出现部分队列无法被消费者,导致消息积压,影响线上业务?考虑到该问题是发送在真... 查看详情

vagrant安装小结(代码片段)

...己装,特别是像我这样第一次使用的新手,总会遇到各种问题。所以写下这篇文章记录一下!安装(&#x 查看详情

rocketmq生产环境主题扩分片后遇到的坑(代码片段)

消息组接到某项目组反馈,topic在扩容后出现部分队列无法被消费者,导致消息积压,影响线上业务?考虑到该问题是发送在真实的线上环境,为了避免泄密,本文先在的虚拟机中来重现问题。1、案情回顾1.1集群现状集群信息如... 查看详情

接swagger很傻x的一次教训(代码片段)

这两天在搭建项目用到了swagger,遇到了不少坑,可以说是完全没必要踩到的坑,却让我浪费了许久时间,确实很难受,记录下来,以此为教训!先说明下:版本号为:springboot2.x、swagger2.7+我遇到了很多问题,第一个:上面那个... 查看详情