◦ Kafkaの機能に大きな変更や追加を行う際はKIPベースで実施する • 大きな変更("major change")とは?: ◦ Any major new feature, subsystem, or piece of functionality ◦ Any change that impacts the public interfaces of the project • public interfaceの例 ◦ Binary log format ◦ The network protocol and api behavior ◦ Any class for which the build generates Javadoc. This includes (but is not limited to; look for javadoc {} sections in build.gradle for the complete list): ▪ org/apache/kafka/common/serialization ▪ org/apache/kafka/common ▪ org/apache/kafka/common/errors ▪ org/apache/kafka/clients/producer ▪ org/apache/kafka/clients/consumer (eventually, once stable) ◦ Configuration, especially client configuration ◦ Monitoring ◦ Command line tools and arguments 4 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
ダウンからの復旧時間 (200万partition) 503秒 37秒 BLOG記事「Apache Kafka Made Simple: A First Glimpse of a Kafka Without ZooKeeper」より https://www.confluent.io/blog/kafka-without-zookeeper-a-sneak-peek/
含まれる主要なKIP ◦ Kafka Core ▪ KIP-881: Rack-aware Partition Assignment for Kafka Consumers ▪ KIP-887: Add ConfigProvider to make use of environment variables ▪ KIP-900: KRaft kafka-storage.sh API additions to support SCRAM for Kafka Brokers ▪ KIP-903: Replicas with stale broker epoch should not be allowed to join the ISR ◦ Kafka Streams ▪ KIP-399: Extend ProductionExceptionHandler to cover serialization exceptions ▪ KIP-889: Versioned State Stores ▪ KIP-907: Add Boolean Serde to public interface ◦ Kafka Connect ▪ KIP-710: Full support for distributed mode in dedicated MirrorMaker 2.0 clusters ▪ KIP-875: First-class offsets support in Kafka Connect ▪ KIP-894: Use incrementalAlterConfig for syncing topic configurations ▪ KAFKA-14021: MirrorMaker 2 should implement KIP-618 APIs 35