Middle
27
Бізде 4 бөлімшесі бар Topic бар. Өндіруші бір пайдаланушының хабарламаларын тек бір бөлімшеге жазу үшін қалай жасауға болады?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Чтобы продюсер Kafka писал сообщения одного пользователя только в одну партицию, нужно использовать ключ (key) при отправке сообщений. Kafka использует ключ для определения партиции через хеш-функцию, поэтому одинаковый ключ всегда попадёт в одну и ту же партицию.
Пример на Python с использованием библиотеки kafka-python:
from kafka import KafkaProducer
import json
producer = KafkaProducer(bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8'))
user_id = 'user123'
message = {'event': 'login', 'user': user_id}
# Отправляем сообщение с ключом user_id, чтобы все сообщения этого пользователя шли в одну партицию
producer.send('topic_name', key=user_id.encode('utf-8'), value=message)
producer.flush()
Таким образом, все сообщения с одинаковым ключом user_id попадут в одну и ту же партицию.