Верблюд Apache установлен параллельно потребляя - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть этот маршрут:

@Component
public class MyRoute implements RouteBuilder {

 @Override
 public void configure() {
        from(topic)
        .routeId(routeId)
        .process(exchange -> {
                // do something
        }
        .process(exchange -> {
                // do something
        }
        .to(anotherTopic);
    }

}

Я хочу обрабатывать больше сообщений из темы параллельно, а не последовательно.

Сообщение используется из очереди kafka и должно быть транзакционным.

Как мне это сделать?

1 Ответ

1 голос
/ 11 ноября 2019

Распространенный общий способ справиться с такой ситуацией - разделить маршрут и использовать SEDA Component с его опцией concurrentConsumers.

В зависимости от вашего сообщения, Разделение EIP с возможностью parallelProcessing() также может работать.

Редактировать: я обнаружил, что глава 13 книги «Верблюд в действии»доступны онлайн для бесплатной ссылки. Эта ссылка также может помочь

...