项目使用了消息中间件rocketmq,用于两个关联项目之间的通信,
先前消费者一直是可以消费的,突然有一天消费者消费不到数据了,
解决过程mark一下,
1,怀疑是不是生产者出问题了,没有生产数据。
和生产者那边联系了一下,那边回复说一直有生产数据的,排除
2,怀疑是不是什么配置有问题,导致不能消费。
仔细检查了下,消费者组、topic、tag、地址、端口和生产者那边沟通了一下,发现这些东西也都没问题。排除
3,没办法,找管理要了生产环境的rocketmq的控制台看了下。
查看消费详情的时候发现了问题,消息都被另外一个服务器上的消费者消费了(有三个平台发布的是相同的代码,但不是集群的)。当时就感到有点懵,因为为了防止消息被其他服务器上的消费者消费,我特意作了判断,让其他服务器上的消费者订阅其他的消费者组,没想到即使订阅了其他的消费者组,因为topic和tag没变,它还是能消费生产者生产的数据。所以只能最后加一个环境变量将其他服务器上的消费者关闭了。