Кафка для хранения сообщения на одном разделе для пользователя? - PullRequest
1 голос
/ 05 января 2020

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

Мне нужно хранить их в kafka для анализа асинхронных данных. Я хочу, чтобы события для указанных c пользователей отправлялись в один раздел очереди, чтобы потребители получали все сообщения в одном разделе. Это не будет выделенная очередь для пользователя. Это означает, что один раздел может хранить данные для нескольких клиентов. Не уверен, как мне этого добиться в кафке?

Ответы [ 2 ]

1 голос
/ 06 января 2020

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

1 голос
/ 05 января 2020

Для отправки сообщений указанных c пользователей в один и тот же раздел вы можете использовать параметр key= метода отправки производителя. Вы можете установить этот параметр в байтовое значение, которое должно быть уникальным. Например, в Python:

producer.send("topic", json.dumps(msg).encode()), key=str(user_id).encode())

Это гарантирует, что сообщения, касающиеся данного пользователя, будут помещаться в тот же раздел topi c.

...