原文鏈接:http://kane-xie.iteye.com/blog/2301197
2016年5月Confluent官方宣布Apache Kafka 0.10正式發布。該版本包含了很多新功能和優化,這里列出比較重要的幾項:
- Streams
如果你有這樣的需求,從Kafka拉取數據進行流處理然后再推送回Kafka,那么你會喜歡0.10的Kafka Streams。Kafka Streams是一個類庫,它實現了一系列流處理動作(例如join,filter,aggregate等),能夠幫助你構建一個功能齊全的低延遲的流處理系統。它支持有狀態或無狀態的處理,並且能夠被部署在各種框架和容器中(例如YARN,Mesos,Docker),也可以集成在Java應用里。
- 機架感知
和Hadoop一樣,Kafka現在也實現了機架感知。如果所有備份都在單個機架上,那么一旦這個機架出問題,那么所有的備份都將失效。現在Kafka會讓備份分布在不同的機架上,顯著的提高了可用性。
- Message中加入Timestamp
在Message中加入了Timestamp,如果沒有被用戶聲明,該字段會被自動設為被發送的時間。這使得Kafka Streams實現了基於時間事件的流處理,你也可以使用Timestamp來實現消息的追蹤查找。除次之外Message中還加入了checksum(但並不是保存在Kafka中,只是取出來之后計算),可以以比較小的代價比對Message。
- SASL增強
Kafka0.9提供了SASL/Kerberos,在0.10中增加了更多的SASL功能,比如SASL/Plaintext
- Kafka Connect Rest API
在之前的版本中,用戶只能通過log來監控Connector的狀態。在0.10中增加了監控和控制的API,可以列出所有的Connector狀態,並且可以暫停或重啟任務。
- Kafka Consumer Max Record
在0.9中,如果想要控制Consumer的單次請求返回數據量,只能控制timeout的大小,0.10加入新的Consumer參數max.poll.records來控制返回的數據條數
- 協議版本改進(Protocol Version Improvements)
Kafka brokers現在支持返回所有支持的協議版本的請求API,這個特點的好處就是以后將允許一個客戶端支持多個broker版本。