将Spring Cloud Stream与Rabbitmq一起使用,交换类型为“ headers”

时间:2019-06-24 11:08:12

标签: java spring-boot configuration rabbitmq spring-cloud-stream

我有一个这样配置的项目:

spring:
    cloud:
        stream:
            rabbit:
                bindings:
                    myChannel:
                        consumer:
                            prefetch: 3
                            maxPriority: 10
                            exchangeType: headers
            bindings:
                myChannel:
                    destination: MyChannel
                    group: my-channel-readers
                    consumer:
                        concurrency: 4
                        max-attempts: 3
            binders:
                rabbit:
                    type: rabbit

这确实创建了正确的Exchange(作为标头)和Queue,但没有绑定它们。

在添加exchangeType: headers之前,它以topic的形式创建了交换,并正确地绑定了队列。 另外,如果我将其切换为exchangeType: topic,则会正确创建绑定。

我希望对此进行绑定,并且仅在项目具有/不具有特定标头时才发送项目-我该怎么做?

1 个答案:

答案 0 :(得分:1)

当前不支持自动绑定到headers交换;参见the documentation

  

exchangeType

     

交换类型:directfanouttopic用于未分区的目的地,而直接或主题用于分区的目的地。

     

默认:主题。

当然,您可以手动绑定它。

应该可以自动绑定到这种类型的交换。随时打开新功能on GitHub