1、如何解决Rabbitmq同一个topic的数据被多个实例消费
如何解决Rabbitmq同一个topic的数据被多个实例消费, 多实例消费有2种情况
1.同一个topic的数据下发到不同的queue中,被不同的queue消费者消费
2.同一个queue中的数据多实例消费,这里要说的是这一种,先上一个配置代码
spring:
cloud:
stream:
bindings:
product_init_input:
destination: product.init.exchange
content-type: application/json
group: product.group
consumer:
concurrency: 50
如何保证多实例消费呢,这里必须要用到的代码是配置就是group, 这个group指定在消费端,指定某一个特定的group,比如代码中的product.group
这样的话启动多实例的时候,实例中注册的queue都是product.init.exchange.product.group
如果不指定group,那么每启动一个实例,就会自动创建一个product.init.exchange.wefdjsfisofewfidsfi 随机后缀的queue,这样相当于第一种情况,一个topic数据被多个queue消费,那么每个queue都会收到完全相同的数据,相当于有几个实例每条数据都被重复消费了几次.