rabbitMQ的三种重要机制

分组:
所有消息都要发布到每个实例
在这里插入图片描述

一个组只收到一个消息
在这里插入图片描述
Spring Cloud的配置(yml):
spring.cloud.stream:
bindings.input:
destination: products
group: productsGroup

重试(retries and deadlock queues):
如果customer处理一个message失败了,这个消息会丢失或者被这个用户要求重发

如果到了重试次数,仍然失败,把消息放到死锁队列里
配置重试和死锁队列(rabbitMQ和KAFKA):
spring.cloud.stream.bindings.input.consumer:
maxAttempts: 3
backOffInitialInterval: 500
backOffMaxInterval: 1000
backOffMultiplier: 2.0

spring.cloud.stream.rabbit.bindings.input.consumer:
autoBindDlq: true
republishToDlq:

truespring.cloud.stream.kafka.bindings.input.consumer:
enableDlq: true

Partitions(分区)
配置了分区的话,消息有个关键字,关键字相同的消息,会按时间顺序被送到同一个consumer里去。
在这里插入图片描述