Kafka 0.9 发布

confluent的CTO Neha Narkhede女士在11月24日宣布 Apache Kafka 发布0.9版本。confluent是由apache kafka的创建者也就是LinkedIn开发Kafka的那个team成立的一家公司。这个版本提供了相当多的Feature和bug fix,具体的改动可以参看 523 JIRA
以下是0.9的主要的改动:

安全

这次Kafka提供了三个安全特性。一是提供Kerberos 和 TLS 身份认证。而是提供了类似Unix-like权限系统,控制哪些用户可以访问数据。三是提供数据传输加密。
当然只有新的producer,consumer API和0.9的consumer实现才能使用这些安全特性。很抱歉的是老的API还是没有这些安全方面的控制。
当然这些安全特性实现了向下兼容的方式,不启动安全特性的用户不必担心性能的降低。
这只是第一版的安全特性,更多的安全控制会在将来的版本中提供。

Kafka Connect

Kafka成为一个非常流行的实时数据流系统。社区也写了很多的connector 比如 Camus,mongo-connector-kafka-doc-manager,couchbase-kafka-connector
等,但是由于各个厂家/社区/个人实现的项目,不统一,学习起来也有曲线,所以Kafka 0.9提供了一个新的Feature:Kafka Connect (Copycat)。

Kafka Connect可以方便地在Kafka上进行大规模的数据导入导出。

为用户定义配额

一个大的Kafka集群可能有多个用户。0.9以前,consumer 如果处理的消息非常快,可能会垄断整个boker的网络资源,producer也是如此。现在Kafka 0.9提供了基于client的用户配额控制。对于Producer可以控制每个client的每秒写的字节数,对于Consumer控制每个client的每秒读的字节。

新的Consumer

Kafka 0.8.2, Producer被重新设计, Kafka 0.9则重新设计了Consumer接口。它不再区分high-level consumer API和low-level consumer API,而是提供了一个统一的consumer API。
Kafka本身可以维护offset,consumer的position,也可以自己维护。这样consumer可以不借助ZooKeeper,而是使用自己的系统来保持自己的读取位置。

Kafka 0.9不再支持 Java 6和Scala 2.9。

贡献者应该有10个左右的中国人或者华人,挺不错。

参考文档

  1. http://www.confluent.io/blog/apache-kafka-0.9-is-released
  2. http://hadoop1989.com/2015/12/03/Kafka-0.9-Feature/
  3. http://kafka.apache.org/090/documentation.html
  4. https://people.apache.org/~junrao/kafka-0.9.0.0-candidate4/RELEASE_NOTES.html