Stay hungry Stay foolish

Kafka 0.9 新特性介绍

Posted on By blue

目录



Kafka发布0.9了,这一重磅消息,让小伙伴们激动不已,来看看这个版本有哪些值得关注的地方吧!

一、安全特性

在0.9之前,Kafka安全方面的考虑几乎为0,在进行外网传输时,只好通过Linux的防火墙、或其他网络安全方面进行配置。相信这一点,让很多用户在考虑使用Kafka进行外网消息交互时有些担心。在安全方面,主要有以下方面设计:

  1. 客户端连接borker使用SSL或SASL进行验证
  2. borker连接ZooKeeper进行权限管理
  3. 数据传输进行加密(需要考虑性能方面的影响)
  4. 客户端读、写操作可以进行授权管理
  5. 可以对外部的可插拔模块的进行授权管理

当然,安全配置方面是可选的,可以混合使用。如:做过安全配置的的borkers和没有进行安全配置的borkers放在同一集群,授权的客户端和没有授权的客户端,也可以在同一个集群等等。具体配置详见官方文档。

二、Kafka Connect

这个功能模块,也是之前版本没有的。可以从名称看出,它可以和外部系统、数据集建立一个数据流的连接,实现数据的输入、输出。有以下特性:

  1. 使用了一个通用的框架,可以在这个框架上非常方面的开发、管理Kafka Connect接口
  2. 支持分布式模式或单机模式进行运行
  3. 支持REST接口,可以通过REST API提交、管理 Kafka Connect集群
  4. offset自动管理

同时,官方文档中,也给出了例子。通过配置,往一个文本文件中输入数据,数据可以实时的传输到Topic中。在进行数据流或者批量传输时,是一个可选的解决方案。

三、新的Comsumer API

新的Comsumer API不再有high-level、low-level之分了,而是自己维护offset。这样做的好处是避免应用出现异常时,数据未消费成功,但Position已经提交,导致消息未消费的情况发生。通过查看API,新的Comsumer API有以下功能:

  1. Kafka可以自行维护Offset、消费者的Position。也可以开发者自己来维护Offset,实现相关的业务需求。
  2. 消费时,可以只消费指定的Partitions
  3. 可以使用外部存储记录Offset,如数据库之类的。
  4. 自行控制Consumer消费消息的位置。
  5. 可以使用多线程进行消费

Kafka 0.9这个版本,大的变化主要就是上面三点了。不过对于这个版本的稳定性还有待在实际使用中进行观察。通过在JIRA中查看,目前这个版本的Bug只帖出了一个,估计跟没有大规模的被用户使用有关。如果小伙伴们在使用过程中有什么心得体会,欢迎在博客下面留言分享!

Kafka 0.9文档地址:http://kafka.apache.org/documentation.html