Несколько KafkaListener / Одна тема - PullRequest
1 голос
/ 24 января 2020

Я использую spring-kafka 2.2.12, и я только начинаю.

Я хочу управлять созданием / обновлением бизнес-объектов через kafka. Если возможно, в том же топи c, чтобы гарантировать заказ (предоставив бизнес-ключ). Поскольку это не те же java типы (создание и запрос), я думаю, мне нужно иметь 2 KafkaListener (с их собственным ContainerFactory / JsonDeserializer). Может быть, я ошибаюсь?

Так что мой вопрос: возможно ли иметь разные KafkaListener (из-за десериализации), которые потребляют одни и те же topi c (для сохранения порядка сообщений)?

Возможно, я неправильно подхожу к теме ... Мне не удалось использовать разные типы объектов в одном KafkaListener.

Спасибо.

1 Ответ

0 голосов
/ 24 января 2020

Если производитель тоже Spring и использует JsonSerializer; он добавит информацию о типе в заголовки (по умолчанию), используемую JsonDeserializer для создания целевого объекта.

Если типы отличаются (источник и назначение), но совместимы с типами из JSON В перспективе вы можете добавить информацию об отображении типа в десериализатор.

Отображение типа также можно использовать, если источником является не Spring (но его можно изменить для установки заголовков информации о типе).

См. документацию .

. Вы также можете использовать Delegating сериализатор / десериализатор для вызова различных реализаций, основанных на некотором заголовке.

...