KafkaListner не разрешает имя topi c - PullRequest
0 голосов
/ 23 февраля 2020

Я работаю над + пружиной и java API. Столкнувшись с действительно раздражающей проблемой. Я использовал шаблонный подход kafka topi c для прослушивания событий для нескольких клиентов. Ниже приведен код потребителя kafka, в котором имя топи c приходит из файла конфигурации, а суффикс имеет жесткое значение кода.

${${service}.topic} value - test-env.demo.*.v1 Значение суффикса - .cqrs.customer

@KafkaListener(
            topicPattern = "${${service}.topic}" + Constants.suffix,
            groupId = "test",
            id = "test")

Итак, окончательное имя топи c, которое будет разрешено для клиента ab c.

test-env.demo.abc.v1.cqrs.customer

и для клиента xyz будет

test-env.demo.xyz.v1.cqrs.customer

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

Может ли кто-нибудь помочь мне в этом.

Спасибо

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете использовать фразу «назначенные разделы» в журнале приложения, эта строка будет содержать информацию о том, какие разделы назначены вашему приложению. В случае успеха должно быть что-то вроде:

partitions assigned: [test-env.demo.abc.v1.cqrs.customer-0], 

Если назначенные разделы пустые

partitions assigned: []

, возможно, уже есть другие экземпляры потребителей в группе «test» и сообщения отправляются обработано ими. В этом случае попробуйте изменить имя группы.

...