Sobes.tech
Back to questions
Junior — Middle
88

Насколько уверенно ты ориентируешься в концепциях и возможностях Apache Kafka?

Answer from AI

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.