千呼万唤始出来,通过7年的发展与完善,Apache Kafka 1.0.0正式发布!在笔者看来,比起1.0.0引入的新功能,此版本最大的意义在于标识Kafka各类组件功能的稳定性。不过咱们仍是来看下1.0.0引入的一些新功能:html
- 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社区吗:-)java