Верблюд перенаправляется на другой маршрут при дросселировании

У меня есть верблюжий маршрут, который будет регулироваться при получении большого количества сообщений. Предположим, что максимальный обмен, который я определил, составляет 3 обмена в 2 секунды, и маршрут получает больше, чем предел, который я хочу перенаправить эти сообщения на какой-либо другой маршрут балансировщика нагрузки. Может ли кто-нибудь помочь мне, как этого достичь ??


person Balaji Kannan    schedule 25.05.2015    source источник
comment
Может быть, вы можете изменить свой маршрут и использовать балансировку нагрузки перед дросселированием?   -  person soilworker    schedule 27.05.2015


Ответы (1)


Если я правильно понимаю ваш вопрос, вы хотите ограничить входящие сообщения, а затем сбалансировать нагрузку этих сообщений на другой маршрут или систему.

from("SomethingSendingMeMessages")
    .throttle(3)
    .loadbalance().roundRobin()
        .to("place1", "place2", "place3")
    .end();

Если вам нужно, чтобы маршрут регулирования был отправлен на второй маршрут, содержащий балансировщик нагрузки, вы можете сделать это следующим образом:

from("SomethingSendingMeMessages")
    .throttle(3)
    .to("direct:mySecondRoute");

from("direct:mySecondRoute")
    .loadbalance().roundRobin()
        .to("place1", "place2", "place3")
    .end();

Другой вариант, который вы можете изучить, — это регулирование после балансировщика нагрузки для управления методом каждого отдельного маршрута.

from("SomethingSendingMeMessages")
    .loadbalance().roundRobin()
        .to("direct:place1", "direct:place2")
    .end();

from("direct:place1")
    .throttle(3)
    .to("myOtherWork");

from("direct:place2")
    .throttle(3)
    .to("myOtherWork");
person Matthew Fontana    schedule 27.05.2015