Назад к вопросам
Junior — Middle
89
Насколько уверенно ты ориентируешься в концепциях и возможностях Apache Kafka?
Ответ от нейросети
sobes.tech AI
Apache Kafka — это распределённая платформа потоковой передачи данных, предназначенная для обработки больших объёмов сообщений в реальном времени.
Основные концепции и возможности:
- Топики (Topics) — логические каналы для публикации и подписки сообщений.
- Продюсеры (Producers) — отправляют сообщения в топики.
- Консьюмеры (Consumers) — читают сообщения из топиков, могут объединяться в группы для параллельной обработки.
- Партиционирование — топики разбиваются на партиции для масштабирования и параллелизма.
- Гарантии доставки — поддержка "по крайней мере один раз" (at least once) и "ровно один раз" (exactly once) с помощью транзакций.
- Хранение сообщений — сообщения сохраняются на диске с возможностью ретенции и повторного чтения.
Kafka широко используется для построения систем обмена событиями, потоковой аналитики и интеграции микросервисов.
Пример простого продюсера на Node.js с использованием библиотеки kafka-node:
const kafka = require('kafka-node');
const client = new kafka.KafkaClient({kafkaHost: 'localhost:9092'});
const producer = new kafka.Producer(client);
producer.on('ready', () => {
const message = 'Hello Kafka';
const payloads = [{ topic: 'test-topic', messages: message }];
producer.send(payloads, (err, data) => {
if (err) console.error(err);
else console.log('Message sent:', data);
});
});
producer.on('error', (err) => {
console.error('Producer error:', err);
});
Это демонстрирует базовое понимание работы с Kafka в Node.js.