Spring Cloud Stream-使用相同的路由密钥和不同的标头从相同的队列发布和使用

时间:2018-12-19 06:29:54

标签: rabbitmq spring-cloud-stream

制作人

exchange name : xyz,
exchange type: direct,
queue: myqueue,
routingkey : myroutingkey,

生产者可以将不同类型的对象发送到队列,但是为了区分对象,他将发送header ['type'] ='type1'以及已经与队列绑定的'myroutingkey'。

send message  : myroutingkey + header[type] = type1 to queue: 
myqueue

send message : myroutingkey + header[type] = type2 to queue: 
myqueue

消费者

@StreamListner1 - consume type1 message from queue: 
myqueue with routingkey : myroutingkey

@StreamListner2 - consume type2 message from queue: 
myqueue with routingkey : myroutingkey

我正在使用Rabit MQ来实现上述要求。

上述要求可能与春季云流有关。如果有可能需要在发布者和消费者方面做些什么,请举个例子。

1 个答案:

答案 0 :(得分:1)

是的,可以通过在condition上使用@StreamListener属性来实现。例如,

@StreamListener(target = Sink.INPUT, condition = "headers['type']=='bogey'")

详细信息为here