惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
H
Heimdal Security Blog
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 【当耐特】
Webroot Blog
Webroot Blog
小众软件
小众软件
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
PCI Perspectives
PCI Perspectives
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
Cloudbric
Cloudbric
AI
AI
WordPress大学
WordPress大学
博客园 - 聂微东
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
Hacker News: Ask HN
Hacker News: Ask HN
H
Hacker News: Front Page
博客园 - Franky
V
V2EX
Schneier on Security
Schneier on Security
G
GRAHAM CLULEY
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
H
Help Net Security
量子位
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
C
Cisco Blogs
S
Security Affairs

博客园 - Doyourself!

python 切换版本后 提示 无法在python 3.11(.venv)(D:/my_rag_bot/.venv/Scripts/python.exe)设置 python sdk,该sdk似乎无效 记录一次日志告警随着nacos文件动态刷新而失效的问题 多个WebMvcConfigurer配置Jackson2ObjectMapperBuilder不生效问题记录 自定义拦截器不生效问题记录 记录一次nginx能通但是请求一直不了的问题 idea远程连接并本地打包到远程服务器 记一次生产环境内存溢出记录 凤凰架构总结 sentinel接入记录 JVM虚拟机总结 记录一次首页优化的经历 使用sharding-jdbc做分库分表记录 使用druid自定义拦截器 记录一次 maven 子模块相互依赖导致的父模块无法动态升级的问题 'parent.relativePath' points at wrong local POM 雪花算法snowflakeIdWorker使用记录 全局调用链路traceId网关到业务层、feign调用统一问题记录 Spring Cloud 的ribbon的饥饿加载机制 打印mq异常消息记录 根据druid将慢sql通过钉钉的方式进行告警功能记录
rocketmq 启动后 在mq console界面的consumer的Quantity数量显示为0 问题记录
Doyourself! · 2026-02-12 · via 博客园 - Doyourself!

              这几天在迁移环境,把当前生产环境运行的一套代码新迁移到一套演练环境。但是遇到一个问题:mq在当前的生产环境,消费者和生产者是成功的,但是当部署到演示环境之后,mq的消费者手动创建后,在控制台界面Quantity的数量一直为0,导致无法消费topic的消息。

image

    类似这种的。

       刚开始想着是环境的问题,但是排查了半天,mq环境和其他环境也没看出有什么问题。唯一的区别是:这些显示未0的,创建的方式和不为0的,是不同的。一种是基于事件的方式,另外一种直接是基于springboot的 :

基于事件的方式:

image

 基于springboot方式的:

image

       两张方式在生产环境当前都是正常的,但是演示环境,springboot的这种方式就是不行,很是奇怪。

       然后我添加了启动日志,将rocketmq的topic/consumer这些基础信息打印了出来,发现也没问题,最终想到:rocketmq-springboot的这些基础信息是基于DefaultRocketMQListenerContainer里面的方式进入注册的,于是在这个类的启动方法上面都加上了debug:

image

image

image

image

     最后发现在这个类的启动方法:initRocketMQPushConsumer() 里面

RPCHook rpcHook = RocketMQUtil.getRPCHookByAkSk(this.applicationContext.getEnvironment(), this.rocketMQMessageListener.accessKey(), this.rocketMQMessageListener.secretKey());
最后得到的这个rpcHook 是null
再然后发现自己的nacos的 mq的 accessKey和 secretKey不是叫这个名字,但是 springboot注解方式是有默认的名称的,和nacos的不一致。而且 新的演示环境开启了TCL认证,但是我的springboot并没有写上,最终导致的。
修复版本很简单,就是配置上accessKey和secretKey
@Component
@RocketMQMessageListener(topic = "${rocketmq.topics.nlcTopic}", consumerGroup = "${rocketmq.consumer.nlpComsumer}",messageModel = MessageModel.CLUSTERING
 ,accessKey = "${rocketmq.accesskey}",secretKey = "${rocketmq.accessSecret}")

public class KnowledgeCallbackMessageConsumer implements RocketMQListener<MessageExt> {
    private static final Logger logger = LoggerFactory.getLogger(KnowledgeCallbackMessageConsumer.class);

    @Autowired
    private org.springframework.core.env.Environment env;

    @PostConstruct
    public void printConfig() {
        String topic = env.getProperty("rocketmq.topics.nlcTopic");
        String group = env.getProperty("rocketmq.consumer.nlpComsumer");
        String nameServer = env.getProperty("rocketmq.name-server"); // 或 rocketmq.nameServer

        logger.info("RocketMQ Consumer Config - Topic: {}, Group: {}, NameServer: {}",
                topic, group, nameServer);
    }

    private ObjectMapper objectMapper;

      重新启动生效了