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里去。