我有一个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配置为具有此行为?
其他一些信息:
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
设置值时,应用程序启动时没有错误。
谢谢!