Если вы создаете новый сервис, откуда вы знаете, с чего начать чтение темы kafka? - PullRequest
0 голосов
/ 22 апреля 2019

Я новичок в архитектуре микросервисов. Я пытаюсь учиться на онлайн-ресурсах. Так что мой вопрос гипотетический.

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

Теперь развернута новая служба, у которой есть собственная локальная копия лица. Теперь этот сервис начинает чтение очереди и видит, что у человека в теме есть данные за 7 дней, в течение которых этот человек получил несколько лайков. Так как же этот сервис определяет, с чего начать чтение этой темы? Может быть, копия данных этой службы уже содержит множество подобных лайков в резервной копии, которую она получила.

1 Ответ

1 голос
/ 22 апреля 2019

Если вы используете уплотненную тему из (person, likes), то последние сообщения этой темы всегда будут самыми актуальными "лайками" для данного " человек "

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...