Как использовать асинхронные маршруты в Apache Camel Blueprint - PullRequest
0 голосов
/ 29 июня 2018

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

    <route id="producer_CUSTOMER_INTERACTIONS_ISSUES_RELATIONSHIPS_Topic">
        <from uri="direct:test"/>
        <pollEnrich aggregateOnException="false" id="pollEnrich1" timeout="-1">
            <constant>file:mock/customer-interactions-issues-relationships?noop=true&amp;idempotent=false</constant>
        </pollEnrich>
        <to uri="kafka:customer-interactions-issues-relationships?brokers=localhost:9092"/>
    </route>

Этот маршрут должен быть использован:

<route id="1"><from uri="timer://foo?fixedRate=true&amp;period=1&amp;repeatCount=1000"/><to uri="direct:test"/></route>
<route id="2"><from uri="timer://foo?fixedRate=true&amp;period=1&amp;repeatCount=1000"/><to uri="direct:test"/></route>
<route id="3"><from uri="timer://foo?fixedRate=true&amp;period=1&amp;repeatCount=1000"/><to uri="direct:test"/></route>
<route id="4"><from uri="timer://foo?fixedRate=true&amp;period=1&amp;repeatCount=1000"/><to uri="direct:test"/></route>

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

enter image description here

Я читал о компоненте SEDA в документации Camel, но нет примеров того, как использовать его в Blueprints: (

1 Ответ

0 голосов
/ 29 июня 2018

Чтобы помочь другим людям, которым необходимо сделать что-то подобное, я решил эту проблему, используя:

<route id="1"><from uri="timer://foo?fixedRate=true&amp;period=1&amp;repeatCount=1000&amp;delay=-1"/><to uri="direct:test"/></route>

Я просто добавил delay=-1, чтобы заставить его работать асинхронно.

Я действительно не знаю, зверь ли это. Если у кого-то есть лучший ответ, пожалуйста, отправьте его, чтобы помочь =)

...