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个左右的中国人或者华人,挺不错。