Ответ
KIP-500 (KRaft): Самое значимое изменение — удаление зависимости от ZooKeeper для управления метаданными. Теперь Kafka использует встроенный Raft-консенсус (режим KRaft). Это упрощает архитектуру, повышает стабильность и упрощает эксплуатацию.
Ключевые возможности для разработки:
- Транзакции и Exactly-Once Semantics (EOS): Гарантированная однократная доставка между топиками.
- Улучшенный балансировщик разделов (StickyPartitioner): Уменьшает количество ребалансировок в потребительских группах.
Пример конфигурации продюсера с идемпотентностью для EOS:
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");
props.put("enable.idempotence", "true"); // Включает идемпотентность
props.put("acks", "all"); // Гарантирует запись на всех репликах
props.put("max.in.flight.requests.per.connection", "5"); // Допустимо при enable.idempotence=true
Producer<String, String> producer = new KafkaProducer<>(props);
Тренды: Активное развитие Kafka Streams для потоковой обработки и глубокая интеграция с облачными managed-сервисами (Confluent Cloud, Amazon MSK).