声明DLX时,Camel Rabbit不允许设置空路由密钥

时间:2017-09-11 22:45:59

标签: rabbitmq apache-camel

我有一个Spring Boot应用程序,它使用Camel Rabbit来消耗队列中的消息。我使用URI来使用死信交换来声明队列,但是我没有提供选项deadLetterRoutingKey,因为我希望消息转到DLX以保留原始路由密钥。应用程序启动时会抛出以下错误:

Caused by: com.rabbitmq.client.ShutdownSignalException: channel error;
    protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - invalid arg 'x-dead-letter-routing-key' for queue 'entry.paid.erp' in vhost '/': {unacceptable_type,void}, class-id=50, method-id=10)

是否可以将Camel配置为具有此行为?

其他一些信息:

  • 骆驼版:2.19.1
  • Spring Boot版本:1.5.4.RELEASE
  • URI的示例我使用:

    rabbitmq://server:port/my-exchange
        ?connectionFactory=#connectionFactory
        &exchangeType=topic
        &queue=my-queue
        &autoAck=true
        &durable=true
        &autoDelete=false
        &exclusive=false
        &automaticRecoveryEnabled=true
        &concurrentConsumers=15
        &deadLetterExchange=dlx-exchange
        &deadLetterExchangeType=fanout
        &deadLetterQueue=dlx-queue
    
  • 当我为deadLetterRoutingKey设置值时,应用程序启动时没有错误。

谢谢!

0 个答案:

没有答案