2016-06-28 8 views
1

私は交換設定がamq.topicで、そこに私のキーを指しているルーティングキーがあります。Camel RabbitMQはmsgをキューにルーティングするだけでなく、生成されたキューを作成します

私は休憩の終点で定義されたルートを持っています。私はjson {"sample": "sample"}のようなボディを持つそのエンドポイントへの呼び出しを行います。

rest("myendpoint") 
       .post() 
       .route() 
       .routeId(ROUTE_ID) 
       .log(ROUTE_ID + " started.") 
       .convertBodyTo(String.class) 
       .log("Receiving request with body=${body}") 
       .to("rabbitmq://rabbiturl:port/amq.topic?connectionFactory=rabbitmqConnectionFactory&autoDelete=false&routingKey=myroutingkey&declare=false&exchangeType=topic")     
       .log(ROUTE_ID + " ended.") 
       .end(); 

これは私が欲しいものを実現:私のREST呼び出しの本体は、ルーティングキーに基づいて、私のキューに行きますそのトピック交換機に送信されます。

問題:それはまた、私はskipqueuedeclare & skipexchangedeclareを試してみました、それはキューを生成している理由のアイデアを実行しています自動生成されたキュー

[    qtp86171426-28] RabbitMQProducer    INFO Starting reply manager service RabbitMQReplyManagerTimeoutChecker[amq.topic] 
[    qtp86171426-28] ReplyManagerSupport   INFO Using temporary queue name: amq.gen-JGF0CKioQ6_MLA9uBNIOOQ 
[    qtp86171426-28] CorrelationTimeoutMap   INFO in putIfAbsent with key Camel-ID-L-VC-10050-58983-1467158153454-0-3 
[nagerTimeoutChecker[amq.topic]] TemporaryQueueReplyHandler  INFO in onTimeout with correlationId= Camel-ID-L-VC-10050-58983-1467158153454-0-3 
[nagerTimeoutChecker[amq.topic]] ReplyManagerSupport   WARN Timeout occurred after 20000 millis waiting for reply message with correlationID [Camel-ID-L-VC-10050-58983-1467158153454-0-3] on destination amq.gen-JGF0CKioQ6_MLA9uBNIOOQ. Setting ExchangeTimedOutException on (MessageId: ID-L-VC-10050-58983-1467158153454-0-2 on ExchangeId: ID-L-VC-10050-58983-1467158153454-0-1) and continue routing. 

を作成します。誰にもアイデアはありますか?

答えて

0

ExchangePatternをInOnlyに設定します。

一時的な応答キューは、ルートが応答を返すことを期待しているため、応答待ちの一時的なキューを作成するためです。

残っているエンドポイントが何も返さない場合は、残りの呼び出しでExchangePatternをInonlyに設定してください。または、.to()で設定します。

+0

私はそれを見つけ出しました。私はしましたか?(ExchangePattern.InOnly、 "rabbitmq:// rabbiturl:port/amq.topic?connectionFactory = rabbitmqConnectionFactory&autoDelete = false&routingKey = myroutingkey&declare = false&exchangeType = topic") – Ryan

関連する問題