没有进入checkLocalTransaction方法

来源:9-12 分布式事务02-编码实现

将自己发配于人海

2022-05-26

1.在executeLocalTransaction方法里 return RocketMQLocalTransactionState.COMMIT处加了断点,并且已经 taskkill进程了
2.content_center数据库里,share表、rocketmq_transaction_log表都已经有数据了。user_center中是没有的,我重启content_center项目之后,发现并没有进入checkLocalTransaction方法,需要怎么排查一下吗

Spring Boot:2.1.5
Spring Cloud:Greenwich.SR1
Spring Cloud Alibaba : 2.1.4.RELEASE
rocketmq-spring-boot-starter: 2.0.3

写回答

1回答

大目

2022-05-27

我怀疑是你的ide版本问题。我印象中,某些idea在执行到commit那行代码时关闭应用,依然会执行完这个方法。也就是说,半消息直接变全消息投递给消费者了。所以不会进后续的回查方法。

同学可以看看,消费者侧是不是消费了该消息。如果会消费,那么,升级idea,或者执行到commit那行时,人工kill 应用进程即可。

如果消费者侧没有消费,那么可以查询一下半消息是否投递到broker了,如果没有,那就是消息发送有问题。可以开debug日志看下消息发送的细节。

0
4
大目
有多个消费者实例吗
2022-06-09
共4条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3084 学习 · 1324 问题

查看课程