当前位置: 首页 > 科技观察

Kafka2.8.0发布,正式与ZooKeeper分道扬镳!

时间:2023-03-13 21:33:40 科技观察

平时关注卡夫卡的朋友要注意了。2021年4月19日,Kafka2.8.0正式发布!这次升级包含了很多重要的变化,其中最引人注目的就是Kafka的自管理仲裁来取代ZooKeeper,通俗地说,Kafka将不再需要ZooKeeper,正式分手!其实早在2019年,社区就有人提议去掉Kafka对Zookeeper的依赖。当时认为这几乎是不可能的,但后来看到大家齐心协力,志存高远,真的是一步步实现了。2.8.0版本将是第一个可以在没有ZooKeeper的情况下运行Kafka的版本,这也被称为KafkaRaftMetadata模式(KafkaRaftmetadatamode),也许是一个会被后人记住的版本。一些刚接触Kafka的朋友可能不明白这是什么意思。Kafka的优势之一是它可以提供高效率和高吞吐量。对于刚刚接触过的人来说,提交日志的底层实现往往是第一个需要学习的。Kafka的代码库中还有很大一部分负责跨多个集群调度日志、分配领导、处理故障等。这使得Kafka成为一个可靠且值得信赖的分布式系统。而ZooKeeper是分布式代码工作的关键。在以前的版本中,ZooKeeper提供了权威的元数据存储,用于存储系统中最重要的内容,例如分区可能存在的位置、哪个组件占主导地位等。但无论如何,ZooKeeper是一种基于一致性日志的特殊文件系统/触发器API。而Kafka是一个建立在一致日志之上的发布/订阅系统。这种不可改变的现实使得运维人员在实际使用中需要跨两个日志实现、两个网络层、两个安全实现(各自有不同的工具和监控钩子)来调优通信和性能。配置、监控、保护、评估,系统相当复杂!所以与ZooKeeper的友好分手在短期内可能是痛苦的,但对于Kafka的长期发展来说利大于弊。除了与ZooKeeper分开之外,此更新还添加了三个新功能:[KAFKA-10500]-添加API以启动和停止流式线程[KAFKA-10700]-支持使用SASL_SSL侦听器的相互TLS身份验证[KAFKA-10749]-有通过对连接速率添加IP限制来优化和修改数百个错误。一些重要更新,例如:[KAFKA-5488]-KStream.branch不应返回必须由已知索引访问的流数组[KAFKA-6687]-允许多次阅读主题[KAFKA-6943]-如果有任何线程崩溃,或者如果所有线程都崩溃,则可以选择干净地关闭KS[KAFKA-9023]-生产者网络异常响应应该记录更多信息[KAFKA-12327]-删除CompressionType中的MethodHandle使用[KAFKA-12365]-kip-500代理/控制器不支持块API(当前)[KAFKA-12394]-考虑主题ID存在和授权错误[KAFKA-4748]-需要一种方法同时关闭Streams应用程序中的所有工作进程[KAFKA-10722]-甚至如果不需要,也使用时间戳存储[KAFKA-10723]-LogManagerleaksinternalthreadpoolactivityduringshutdown2.8.0/RELEASE_NOTES.html原文链接:https://mp.weixin.qq.com/s/u79s0Hq3dkXNo00HPTzgdw