Устранение дублирования между внутренней темой ktable и темой пользователя

Я пишу приложение для книжной библиотеки, и у меня есть 2 микросервиса: memberService и bookService. MemberService создает ktable членов (построенных путем объединения сообщений об изменениях в другой теме) для собственного внутреннего использования. BookService также нуждается в доступе для чтения к этой ktable. В настоящее время я делюсь данными, вызывая memberService memberTable.toStream().to("memberTableTopic") и у меня bookService подписывается на memberTableTopic.

Исходя из моего понимания того, как работают ktables, данные в memberTableTopic будут идентичны внутренней теме поддержки, используемой ktable. Есть ли хороший способ устранить эту избыточность? Должен ли мой bookService подписываться на внутреннюю тему?

0
0
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, данные будут выглядеть одинаково в обеих темах - внутренней и пользовательской.

По сути, внутренние темы используются внутри приложений KStream. Это означает, что при сбросе идентификатора приложения эти внутренние разделы будут удалены, и вы потеряете данные. Хотя темы пользователей существуют вне приложения, они могут использоваться любым приложением в любое время.

Это зависит от ваших потребностей, как вы хотите использовать данные. Если вы хотите удалить избыточность, вы можете установить короткое удержание для своих внутренних тем.

Предполагается, что внутренние темы для агрегатов должны иметь сжатие журналов, поэтому я не думаю, что смогу сократить время хранения. Увидев, как вы описываете внутреннюю концепцию, я думаю, что можно иметь 2 копии данных, внутреннюю и общедоступную.

Jacob Botuck 14.09.2018 16:20

Мы планируем добавить оптимизацию для использования выходной темы в качестве журнала изменений, чтобы избежать избыточности: issues.apache.org/jira/browse/KAFKA-6035 На данный момент вам решать, на какой риск вы готовы пойти - безопасная ставка - принять избыточность данных.

Matthias J. Sax 14.09.2018 22:50

Интересно, при предложенной оптимизации, что помешать другому приложению писать в тему вывода? Я предполагаю, что это повлияет на способность ktable правильно восстанавливаться.

Jacob Botuck 16.09.2018 04:35

Другие вопросы по теме