2017-11-13 9 views
0

私は、ウサギの待ち行列、処理、および投稿メッセージを別のウサギ待ち行列から聞きたい。私は春と一緒に働いていない。メッセージはこの構成で複製されます。同じCamel RouteBuilderの設定方法で2つのRabbitMQ接続を設定する方法

これは短いコードです:私はこれも試してみました

context.addRoutes(new RouteBuilder() { 
     @Override 
     public void configure() throws Exception { 
      from("rabbitmq://localhost/B?autoDelete=false&queue=worker&threadPoolSize=1&autoAck=false"). 
        log(LoggingLevel.INFO, "Message ${id}"). 
        to("rabbitmq://localhost/B?autoDelete=false&queue=processed"); 
     } 
    }); 

:4つのメッセージで

public static void main(String[] args) throws Exception { 
    org.apache.camel.impl.DefaultCamelContext context = new DefaultCamelContext(); 

    com.rabbitmq.client.ConnectionFactory connectionFactoryWorker = new ConnectionFactory(); 
    com.rabbitmq.client.ConnectionFactory connectionFactoryProcessed = new ConnectionFactory(); 
    org.apache.camel.impl.SimpleRegistry registry = new SimpleRegistry(); 
    String camelBeanNameWorker = "connectionFactoryWorker"; 
    String camelBeanNameProcessed = "connectionFactoryProcessed"; 
    registry.put(camelBeanNameWorker, connectionFactoryWorker); 
    registry.put(camelBeanNameProcessed, connectionFactoryProcessed); 
    context.setRegistry(registry); 

    context.addRoutes(new RouteBuilder() { 
     @Override 
     public void configure() throws Exception { 
      from("rabbitmq://localhost/B?connectionFactory=connectionFactoryWorker&autoDelete=false&queue=worker&threadPoolSize=1&autoAck=false"). 
        log(LoggingLevel.INFO, "Message ${id}"). 
        to("rabbitmq://localhost/B?connectionFactory=connectionFactoryProcessed&autoDelete=false&queue=processed"); 
     } 
    }); 

    context.start(); 
    Thread.sleep(10000l); 
    context.stop(); 
} 

ワーカーキュー開始、しかし、メッセージを再キューイングされている:

561メッセージID-host-1510600494291-0-2
566メッセージID-host-1510600494291-0-4
566 ID-ホスト1510600494291から0メッセージID-ホスト1510600494291-0-6
567メッセージID、ホスト1510600494291-0-8
568メッセージID、ホスト1510600494291-0-10
571メッセージ-12
572メッセージID、ホスト1510600494291-0-14
572メッセージID、ホスト1510600494291-0-16
573メッセージID、ホスト1510600494291-0-18
574メッセージID - ホスト1510600494291 -0-20
574メッセージID-host-1510600494291-0-22
575メッセージID-host-1510600494291-0-24
576メッセージID - ホスト1510600494291-0-26
576メッセージID、ホスト1510600494291-0-28
577メッセージID、ホスト1510600494291-0-30
578メッセージID - ホスト1510600494291から0 -32
後のメッセージID-ホスト1510600494291-0-34
...
64K ...
10561メッセージID-ホスト1510600494291-0-128690
10561メッセージID、ホスト - 1510600494291-0-128692
10561メッセージID-host-1510600494291-0-128694
10561メッセージID-ホスト1510600494291-0-128696

+0

あなたは試したコードを投稿しましたが、結果を伝えていません。あなたが試した結果は何ですか?あなたが得ている問題は何ですか? – sakura

+0

どのCamelのバージョンをお使いですか? – Oscerd

+0

私はCamel 2.20.0を使用しています –

答えて

0

結果を知らなくても、あなたのコードを見て、私はあなたが使用しようとしているときに「#」を欠けていることに欠けていることに気づきましたレジストリーからのBean。レジストリから何かを使用すると、実際の結果が何であるかところで

public static void main(String[] args) throws Exception { 
DefaultCamelContext context = new DefaultCamelContext(); 

ConnectionFactory connectionFactory = new ConnectionFactory(); 
SimpleRegistry registry = new SimpleRegistry(); 
String beanNameWorker = "connectionFactoryWorker"; 
String beanNameProcessed = "connectionFactoryProcessed"; 
registry.put(beanNameWorker, connectionFactory); 
registry.put(beanNameProcessed, connectionFactory); 
context.setRegistry(registry); 

context.addRoutes(new RouteBuilder() { 
    @Override 
    public void configure() throws Exception { 
     from("rabbitmq://localhost/B?connectionFactory=#connectionFactoryWorker&autoDelete=false&queue=worker&threadPoolSize=1&autoAck=false"). 
       log(LoggingLevel.INFO, "Message ${id}"). 
       to("rabbitmq://localhost/B?connectionFactory=#connectionFactoryProcessed&autoDelete=false&queue=processed"); 
    } 
}); 

}

ときに実行する必要があり何

?どのようなエラーがありますか?

+0

私は春と一緒に働いていない –

0

は、私はどうやらBridgeEnpoint = falseオプションを設定

Infinite loop in Camel - Rabbit MQ

はこれを停止して別の質問にあなたの答えを見つけたかもしれないと考えています。これを指定しないと、EXCHANGE_NAMEヘッダーとROUTING_KEYヘッダーは、受信したメッセージから取得され、「to」構成で指定したものを上書きします。たとえば... rabbitmq://localhost/B?connectionFactory=connectionFactoryProcessed&autoDelete=false&queue=processed&BridgeEndpoint=false

+0

この場合、このソリューションは動作しません –

+0

あなたはなぜそうしないのか概要を説明できますか? –

+0

私は春と一緒に働いていません –

関連する問題