Расскажи про опыт работы с Kafka
Работал с Apache Kafka в продакшене около 2 лет. Основные задачи: настройка кластера, оптимизация топиков (partitioning, replication factor), обработка событий в реальном времени.
Пример producer/consumer на Java:
// Producer
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");
Producer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("test-topic", "key", "value"));
// Consumer
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList("test-topic"));
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
Решал проблемы:
- Exactly-once семантика через `enable.idempotence=true`
- Балансировка нагрузки через увеличение partitions
- Мониторинг через JMX + Prometheus
Также работал с Kafka Streams для обработки потоков данных и KSQL для аналитики.