Apache Kafka 1.0.0正式发布!
千呼万唤始出来,经过7年的发展与完善,Apache Kafka 1.0.0正式发布!在笔者看来,比起1.0.0引入的新功能,此版本最大的意义在于标识Kafka各种组件功能的稳定性。不过我们还是来看下1.0.0引入的一些新功能:
- Kafka Streams API的优化:增加了一些全新的操作算子(operator),如cogroup等。另外print和writeAsText方法的改进更加方便了对Streams程序的调试
- JMX监控指标的完善:引入了很多集群健康度检查指标,同时对Kafka Connect监控体系做了较大程度的补足
- 正式支持Java 9:Java 9优化TLS和CRC32的性能(JEP 249以及引入了java.util.zip.CRC32C),因此在Java 9上启用Kafka安全后可以更快地进行数据加密以及checksum计算与校验
- 优化SASL认证错误的处理:之前某些SASL认证异常没有清晰显式地与其他异常区分开来。1.0.0版本更加“优雅”地处理这些异常,参见KAFKA-4764
- 强化对JBOD磁盘崩溃的处理:之前JBOD下Kafka无法容忍磁盘崩溃,会直接导致broker宕机。该新功能正式支持JBOD错误处理——笔者以为这是普通Kafka用户(没有使用Kafka Streams)最期待的1.0新功能了
- 幂等producer的优化:之前为了保证消息的顺序性,在启用幂等producer之后强制设置max.in.flight.requests.per.connection=1,因而影响producer的TPS。KAFKA-5949引入了新的算法使得在保持幂等和EOS的同时还能提升该参数上限到5,一定程度上缓解了对TPS的伤害
比起Apache Flink火箭速度的版本演进,Kafka 1.0发布的确有些慢了,不过我们总算是等到了这个正式版本。接下来问题来了,Confluent会把KSQL捐献给Apache社区吗:-)