Kafka2.0.0正式版发布!多项重要的新功能

  |   0 评论   |   1,696 浏览

    Apache Kafka 2.0.0已于当地时间2018-07-30正式发布,包含一系列重要的新功能,下面来看一下


    1. KIP-290增加了对前缀ACL的支持,简化了在大型集群中部署安全时的访问控制管理。现在可以使用同一规则对批量访问多个Topic、Consumer Group或具有前缀的事务ID进行授权。用于创建Topic的访问控制也已得到改进,用以对创建特定Topic或具有前缀的Topic进行授权。

    2. KIP-255添加了一个框架,用于使用OAuth2 bearer tokens向Kafka Broker进行身份验证。 SASL / OAUTHBEARER的实现使用回调函数对Token的恢复和验证进行了定制。

    3. 现在,SSL连接默认启用主机名验证(Host name verification),以确保默认SSL配置不受中间人攻击的影响。如果需要,您可以禁用此验证。

    4. 您现在可以在不重新启动Broker的情况下动态更新SSL truststore。您还可以在启动Broker之前在ZooKeeper中为Broker 监听器配置安全性,包括SSL keystore和truststore密码以及SASL的JAAS配置。使用此新功能,您可以在ZooKeeper中以加密形式存储敏感密码配置,而不是在Broker properties文件中以明文形式存储。

    5. 复制协议已得到改进,以避免在fast leader failover期间leader和follower之间的日志差异。我们还通过减少消息down-conversions的内存占用来提高Broker的恢复能力。通过使用消息分块,内存使用和内存引用时间都已减少,以避免Broker中的OutOfMemory错误。

    6. 现在,当启用配额时,在任何限流策略应用之前,Kafka客户端都会收到限流的通知。这使客户能够区分网络错误还是大的节流时间。

    7. 我们为Kafka Consumer添加了一个配置选项,以避免Consumer无限期阻塞。

    8. 我们已经放弃了对Java 7的支持,并删除了之前弃用的Scala版本的Producer和Consumer。

    9. Kafka Connect包含许多改进和功能。 KIP-298使您能够控制在Connector停止前接受connectors, transformations and converters之间发生多少错误,这是通过启用自动重试和控制容许的错误数来实现的,日志中可以包含更多上下文信息,以帮助诊断问题,并且可以将Connector消耗的有问题消息发送到dead letter队列,而不是强制Connector停止。

    10. KIP-297增加了一个新的扩展点,可以将密钥从Connector配置中移除,并与任何外部密钥管理系统集成。Connector配置中的占位符仅在将配置发送到Connector之前进行解析,确保在首选密钥管理系统中安全地存储和管理机密,而不是通过REST API或日志文件公开。

    11. 我们为Kafka Streams DSL添加了一个轻量级的Scala包装API,它在编译期间提供了更好的类型推断和更好的类型安全性。 Scala用户可以在代码中使用更少的样板,特别是关于具有新隐式Serdes的Serdes。

    12. Kafka Streams Processor API现在支持消息头,允许用户添加和操作从source Topic读取的头,并将它们传播到sink Topic。

    13. 由于采用了新的"一键fetch"API,Kafka Streams中的窗口聚合性能已大大提高(有时甚至达到一个数量级)。

    14. 我们使用kafka-streams-testutil工件进一步改进了Kafka Streams的单元可测性。

    更多信息请参阅《Release Notes