标签:ZooKeeper KAFKA 2.8 线程 日志 Kafka
平时关注 Kafka 的小伙伴要注意了,2021年4月19日,Kafka 2.8.0正式发布!
这次升级包括了很多重要的改动,其中最引人瞩目的就是kafka通过自我管理的仲裁来替代ZooKeeper,通俗的说,Kafka将不再需要ZooKeeper,正式分手!
其实早在19年,就有人在社区中提出要移除Kafka对Zookeeper依赖的想法,当时被视为几乎不可能,但随着众人齐心协力踌躇满志,竟然真的一步一步逐渐实现了。
2.8.0版本将是第一个不需要ZooKeeper就可以运行Kafka的版本,而这也被称为Kafka Raft Metadata mode(Kafka Raft 元数据模式),或许就是一个会被后人铭记的版本。
可能有一些刚接触Kafka的小伙伴还不明白这到底代表着什么。
Kafka的一大优点就是能够提供高效率和吞吐量,对先前刚接触的小伙伴来说,提交日志的底层实现往往是需要学习的第一个任务。
Kafka 的代码库中还有很大一部分是负责在多个集群中安排日志、分配领导权、处理故障等。这使的 Kafka 成为一个可靠和可信的分布式系统。而ZooKeeper就是分布式代码工作的关键。在以往的版本中,ZooKeeper 提供了权威的元数据存储,这些元数据存储了系统中最重要的东西,例如分区可以存在哪里,哪个组件是主导等等等等。
但不管怎么样,ZooKeeper 是一个基于一致日志的特殊文件系统/触发器API。而Kafka 是一个建立在一致日志之上的发布/订阅系统。
这个无法改变的现实使得实际使用中,运维人员需要跨两个日志实现、两个网络层和两个安全实现(每个实现都有不同的工具和监视钩子)对通信和性能进行调优、配置、监视、保护和评估,这就使得系统变得相当复杂!
所以和ZooKeeper的友好分手 短期可能会有阵痛,但对于Kafka的长远发展利大于弊。
除了和ZooKeeper分开,本次更新还新增了三个功能:
[KAFKA-10500]-添加API以启动和停止流线程
[KAFKA-10700]-支持使用SASL_SSL侦听器实现相互TLS身份验证
[KAFKA-10749]-通过连接速率添加IP限制
而优化及修改bug更是多达百个。
一些重要的更新例如:
[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]-LogManager在关闭期间泄漏内部线程池活动
如果对具体的更新内容感兴趣,可以直接登陆官网进行查看:
https://downloads.apache.org/kafka/2.8.0/RELEASE_NOTES.html
大家对这次更新有什么自己的想法呢?欢迎留言进行讨论!
标签:ZooKeeper,KAFKA,2.8,线程,日志,Kafka 来源: https://blog.51cto.com/u_14299052/2935299
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。