千呼萬喚始出來,通過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