Java Apache Camel RabbitMQ从一个队列到另一个队列

Java Apache Camel RabbitMQ从一个队列到另一个队列,java,spring-boot,rabbitmq,apache-camel,Java,Spring Boot,Rabbitmq,Apache Camel,我必须实现一个微服务,它从rabbitmq队列获取消息,转换它并将其推送到rabbitmq交换 我使用ApacheCamel RabbitMq和Spring Boot,使用JavaSDL for Camel来实现这个功能。 我(目前)在我的机器上使用一台rabbitmq服务器。 配置如下所示: from("rabbitmq://localhost:5672/exchange1?username=guest&password=guest&queue=q1&autoDelet

我必须实现一个微服务,它从rabbitmq队列获取消息,转换它并将其推送到rabbitmq交换

我使用ApacheCamel RabbitMq和Spring Boot,使用JavaSDL for Camel来实现这个功能。 我(目前)在我的机器上使用一台rabbitmq服务器。 配置如下所示:

from("rabbitmq://localhost:5672/exchange1?username=guest&password=guest&queue=q1&autoDelete=false");  
.to("rabbitmq://localhost:5672/exchange2?username=guest&password=guest&exchangeType=fanout&skipQueueDeclare=false")
代码anove从q1获取消息,并在q1中一次又一次地发布消息。它只用于从队列中获取消息并将其发送(例如)到文件,或单独创建消息并将其发布到exchange。
有没有办法让它像我期望的那样工作


谢谢from()生成rabbitMQ头。除非您手动删除它们,否则它们将传递给您的
to()
。这将导致连接不匹配。最好是在
from()
之后删除兔子头,这样它们就不会干扰到
to()

您使用的是什么版本的Camel?您好,我使用的是Camel版本2.20.1,很可能您需要从“from”语句中删除兔子头,这样它们就不会传递到“to”语句。@Souciance Eqdam Rashti。你的回答是正确的。请创建一个真实的答案,以便我可以批准它。谢谢你帮助我@乔治亚·拉杜图,很酷,很高兴能帮上忙。我给你写了一个答案。这对我不起作用。我在from()和to()之间运行了一个.removeHeaders(“*”),它仍然会填充to()中的目标队列,而不是简单地发送从from()中的队列检索到的单个消息。这就好像它没有自动确认源队列中的消息,所以它一直在重新使用它。这是用户错误。使用同一个交换创建一个队列以从中消费,然后使用同一个交换发送到一个队列也就是发送到源队列,从而创建一个无限的排序循环。解决此问题的方法是为要发送的目标队列创建单独的交换。