2015-04-17 32 views
2

我想从使用骆驼RabbitMQ组件的绑定到持久交换的路由键“”的自动删除匿名队列中消耗。当我这样设置端点(重新格式化为可读性):如何使用骆驼RabbitMQ组件创建自动删除队列

rabbitmq://localhost:6672/br.processor? 
    autoAck=true& 
    autoDelete=false& 
    bridgeEndpoint=true& 
    concurrentConsumers=1& 
    durable=true& 
    exchangeType=topic& 
    prefetchCount=2000& 
    prefetchEnabled=true& 
    queue=& 
    routingKey=& 
    username=xxxx& 
    password=xxxxxx& 
    vhost=xxxx 

我收到一封匿名命名持久的队列,选择到正确的交流,设置队列名称的路由项。

我查看了代码(2.14.2),它显示队列将始终具有与交换相同的持久性,但路由键只会在路由键未指定时设置为空字符串( null)。当我尝试时,路由密钥仍被设置为队列的名称。当我指定一个路由密钥时,我确实得到了预期的路由密钥。

环顾这里和其他地方,我发现Avoid automatic binding with RabbitMQ and Camel,但没有宣布交换和队列导致问题。

是否可以使用骆驼空白路由键绑定队列?

回答

0

使用扇出交换没有必要的路由关键

to("rabbitmq://"+System.getenv("rabbitmq_host") + ":" + 
       System.getenv("rabbitmq_port") + "/myXchange_fanout?" 
         + "connectionFactory=#customConnectionFactory&" 
         + "exchangeType=fanout&" 
         + "queue=test_fanout&" 
         + "autoDelete=false&" 
         + "vhost=" + System.getenv("rabbitmq_vhost"))