Кафка верблюд тема подстановочный знак - PullRequest
0 голосов
/ 19 октября 2018

У меня есть простое приложение (Java), которое слушает тему Кафки, используя Camel.Это название темы следует шаблону, подобному следующему:

foo.bar.lol
foo.bar.wat

Я знаю, что эти темы всегда начинаются с foo.bar., но может быть бесконечно много элементов 3-го уровня.

Это не такМожно добавить несколько маршрутов, один для foo.bar.lol и один для foo.bar.wat, потому что их бесконечно много.Также невозможно изменить способ, которым эти названия тем генерируются и передаются мне.Вот и все.

Соответствующий материал:

camel.properties

...

kafka.brokers=x.x.x.x:1234,y.y.y.y:2345,z.z.z.z:3456
kafka.incoming-topic=foo.bar.*

...

Примечание: я также пробовалkafka.incoming-topic=foo.bar.>, который, по-видимому, является рекурсивным селектором подстановочных знаков.Без разницы.

Соответствующий элемент из маршрута

from("kafka:{{kafka.incoming-topic}}?brokers={{kafka.brokers}}")

Полный список зависимостей из pom.xml - без Spring или чего-либо подобного

 <dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.22.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-kafka</artifactId>
        <version>2.22.0</version>
    </dependency>
</dependencies>

Я знаю, что все остальное в порядке, потому что, если я явно поменяю kafka.incoming-topic на foo.bar.lol, я получу сообщения просто отлично.

Разве это невозможно?Я делаю это неправильно?

...