原文链接: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版本。

05-03 23:01