Я думаю о архитектурном паттерне, когда у каждого клиента моего сервиса есть свой потребитель кафки.
Например, есть тема events
с некоторым коэффициентом репликации и некоторым количеством разделов, которые я использовал для масштабируемости. Все события для данного клиента принадлежат одному разделу (я использую clientId
для ключа раздела).
У каждого клиента есть собственный offset
. Итак, мой API позволяет использовать offset
для получения клиентских событий.
В порядке ли дизайн системы? Или каков правильный дизайн API для получения событий?
each client has unique offset.
каждое сообщение в kafka будет иметь смещение, что вы имеете в виду подclient
здесь? В соответствии с этим(I use clientId for partition key).
одни и те же клиентские события будут попадать в один и тот же раздел? а если у вас 1000 клиентов с топиком 100 разделов? - person Deadpool   schedule 28.02.2019poll()
, я могу получить смещение записи. Я возвращаю это смещение как часть результата моего API. Итак, клиент знает, какое последнее смещение события он получает. Проблема связана с количеством потребителей в моем подходе. Мне нужно создать потребителя для каждого клиента API. Кажется, что это плохой дизайн. Да, одни и те же клиентские события попадут в один и тот же раздел. - person Max   schedule 28.02.2019