spring-cloud-starter-stream-rocketmq 2023.0.0.0-RC1使用rocketmq无法消费,但是能正常生产。
发送成功的时候,有一个异常日志。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,spring-cloud-starter-stream-rocketmq
版本为2023.0.0.0-RC1
时,RocketMQ能够正常生产消息但无法消费,并且在发送成功时出现异常日志。以下是针对该问题的详细分析和解决方案:
spring-cloud-starter-stream-rocketmq
的依赖版本可能与RocketMQ SDK版本不兼容。spring-cloud-starter-stream-rocketmq
使用的RocketMQ SDK版本可能存在Bug或不支持某些功能。确保消费者组(Group ID)已正确创建,并且其协议类型与SDK一致: - 如果使用的是TCP协议,请确保在控制台创建Group ID时选择了TCP协议。 - 如果使用的是gRPC协议,请确保使用了支持gRPC协议的SDK版本(如rocketmq-client-java
)。
检查生产者发送的消息类型与消费者订阅的Topic类型是否一致: - 如果发送的是普通消息,则消费者订阅的Topic也必须是普通消息类型的Topic。 - 如果发送的是顺序消息,则消费者订阅的Topic必须是顺序消息类型的Topic。
确认spring-cloud-starter-stream-rocketmq
与RocketMQ SDK的版本兼容性: - 推荐使用经过阿里云测试验证的SDK版本,例如rocketmq-client-java
版本5.0.7
或rocketmq-spring-boot-starter
版本2.3.1
。 - 如果使用的是Remoting协议,请确保依赖中包含rocketmq-spring-boot-starter
。
检查application.properties
或application.yml
中的配置是否正确:
# 示例配置
accessKey=LTAI5t6K7KY****VjAY3yS
secretKey=P6z2pkIKAZ****n61JZ5e1lofFG9
nameSrvAddr=http://MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80
topic=normal_topic
groupId=GID_test
tag=*
nameSrvAddr
为正确的TCP协议接入点。topic
和groupId
与控制台创建的资源一致。tag
过滤表达式是否正确,例如*
表示订阅所有消息。查看异常日志的具体内容,重点关注以下信息: - 是否存在权限相关错误(如AccessKey或SecretKey配置错误)。 - 是否存在网络连接错误(如无法连接到nameSrvAddr
)。 - 是否存在SDK版本相关的错误(如方法调用不支持)。
如果问题仍未解决,建议尝试以下操作: - 将spring-cloud-starter-stream-rocketmq
升级到最新稳定版本。 - 替换为阿里云推荐的SDK版本,例如rocketmq-client-java
或rocketmq-spring-boot-starter
。
如果按照上述步骤排查后问题仍未解决,请提供以下信息以便进一步分析: - 异常日志的完整内容。 - application.properties
或application.yml
的配置内容。 - 使用的RocketMQ SDK版本及spring-cloud-starter-stream-rocketmq
版本。
通过以上步骤,您应该能够定位并解决RocketMQ消费失败的问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/