Кафка и гетерогенные сообщения

Я занимался исследованием Kafka и Avro, и у меня возник вопрос о том, как обрабатывать разнородные сообщения с помощью Kafka.

Предположим, у нас есть две схемы Avro: EmailSent и UserLoggedIn. Как лучше всего с Кафкой их потреблять?

  1. Создать тему для каждой схемы? Но это звучит как плохая идея, если у нас будет намного больше схем...
  2. Сохранить имя схемы (или идентификатор, например email_sent или user_logged_in) в ключе KeyedMessage и позволить каждому потребителю фильтровать по ключу? Но каждый потребитель должен будет потреблять все события, и это может быть накладным...
  3. Что-то другое :)

Я надеюсь, что мой вопрос понятен. Заранее спасибо за помощь!

Ваше здоровье,

Радий.


person radium226    schedule 08.07.2015    source источник


Ответы (1)


1st Approach: Думаю, это можно сделать в одной теме. Вы можете разделить эти два набора данных схемы на основе раздела в вашей теме. Предположим, вы создаете 4 раздела в своей теме. Напишите email_sent в 1 и 2. Напишите user_logged_in в 3 и 4.
Одна группа потребителей подпишется на 1 и 2. 2-я группа потребителей подпишется на 3 и 4. При этом ненужные операции ввода-вывода не выполняются.
2nd Approach : Создайте две отдельные темы.

person Anil Gupta    schedule 09.07.2015
comment
Я только что прочитал, что LinkedIn использует более 32000 тем, поэтому первый подход звучит лучше. Что вы думаете?) - person radium226; 09.07.2015