RocketMQ在将spring-cloud-starter-stream-rocketmq升级到2022.0.0.0之后,出现了一个问题:
producer端启动事务消息(spring.cloud.stream.rocketmq.bindings.demon2Channel-out-0.producer.producterType=Trans)后,consumer端的spring.cloud.stream.bindings.demon2Cannel-in-0.consumer.partition=true配置将不生效,这时consumer端接收到的消息的header也是包含scst_Partition的,并且值正确。如果事务消息被取消(producer.productType=Normal),那么consumer.partitiond=true将生效。如果将spring-cloud-starter-stream-rocketmq降级到以前的旧版本,则不存在这样的问题。
RocketMQ出现了一个问题?[阿里云消息队列MQ]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
根据您的描述,升级到RocketMQ 2022.0.0.0版本后,遇到了一个问题:当在producer端启动事务消息(
spring.cloud.stream.rocketmq.bindings.demon2Channel-out-0.producer.producterType=Trans
)时,consumer端的spring.cloud.stream.bindings.demon2Cannel-in-0.consumer.partition=true
配置不生效。而如果事务消息被取消(producer.productType=Normal
),则consumer.partition=true
会生效。同时,如果将spring-cloud-starter-stream-rocketmq
降级到旧版本,则不存在这个问题。这个问题可能是由于新版本的RocketMQ对事务消息处理的改变导致的。建议您尝试以下解决方案:
检查RocketMQ和Spring Cloud Stream的版本兼容性:确保您使用的RocketMQ版本与Spring Cloud Stream版本兼容。可以查阅官方文档或Spring Cloud Stream的GitHub页面了解版本兼容性信息。
升级Spring Cloud Stream版本:尝试升级您使用的Spring Cloud Stream版本,以查看是否有已知的问题修复。可以参考Spring Cloud Stream的官方文档或GitHub页面了解最新版本。
查看RocketMQ的发布说明:仔细阅读RocketMQ的发布说明和变更日志,查看是否有关于事务消息或者相关配置的改变。可能会提供一些线索或解决方案。
这个问题可能是由于RocketMQ在2022.0.0.0版本中对事务消息的处理逻辑发生了变化,导致了消费者端的分区功能失效。具体的原因和解决方案如下: