Sobes.tech
Назад к вопросам
Junior — Middle
61

Каким образом осуществляется передача сообщений в системе Kafka?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Apache Kafka передача сообщений происходит через концепцию публикации и подписки (publish-subscribe). Сообщения отправляются продюсерами (producers) в определённые топики (topics). Топик — это логическая категория или канал, куда пишутся сообщения.

Каждый топик разбит на партиции (partitions), которые позволяют масштабировать обработку и обеспечивают упорядоченность сообщений внутри партиции. Сообщения внутри партиции имеют уникальный смещённый индекс (offset).

Потребители (consumers) подписываются на топики и читают сообщения из партиций, отслеживая offset, чтобы знать, какие сообщения уже обработаны.

Пример отправки сообщения на Java с использованием KafkaProducer:

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

KafkaProducer<String, String> producer = new KafkaProducer<>(props);

ProducerRecord<String, String> record = new ProducerRecord<>("my-topic", "key1", "Hello Kafka");
producer.send(record);

producer.close();

Таким образом, сообщения передаются асинхронно, гарантируя высокую производительность и масштабируемость.