abbitmq默认情况下会将每一次消息依次轮训投递给绑定在队列上的每一个消费者。
但是我们在实际多机部署的情况下并不希望这样,并且这样可能会出现消息堆积。
我们希望的是处理能力强的机器多承担消费消息的职能,而反之少承担消费消息的职能
所以rabbitmq给我们提供了一个选项,在application配置当中可以做出如下配置
spring: rabbitmq: host: xx.xx.xx.xx port: 5672 virtual-host: /xxxx username: xxxx password: xxxx listener: simple: prefetch: 1 //每次只能处理一个消息,处理完成才可以获取下一条消息