如何进行Apache Kafka 2.7.0加速移除Zookeeper的分析

发布时间:2024-02-12
这篇文章给大家介绍如何进行apache kafka 2.7.0加速移除zookeeper的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
分布式发布与订阅系统apache kafka社区,发布了2.7.0这个迟来的版本,该版本的几个重点更新,包括持续将apache kafka中的zookeeper替换掉,加入了新的内部代理api,并且增加新的core raft共识演算法,现在apache kafka中具有单独包含核心共识协定的core raft模块。另外,分层储存的工作也持续进行中,以提供无限扩展和更快达到重新均衡的能力。
zookeeper原本是在apache kafka中,扮演协调代理的角色,所有代理服务器启动时,都会连接到zookeeper进行注册,当代理状态发生变化时,zookeeper便会储存这些数据,kafka的代理会通过zookeeper与其他代理沟通进行同步,也就是说kafka没有zookeeper,也就无法顺利运行。
不过,zookeeper并非kafka的一部分,因此运行每一个kafka集群,都必须部署两套系统,这产生了许多问题,包括造成多余资源的耗费,包括更多网路、监控功能以及安全性等资源配置,而kafka集群规模增加,也就代表zookeeper必须要跟着扩展,必须使用更多的存取,且zookeeper作为外部的数据储存服务,当数据越来越多,使得控制器载入时间越来越长,限制了kafka集群的规模扩展。
因此在2019年的时候,apache kafka社区就开始移除zookeeper的工作,要由kafka本身提供数据管理功能,而apache kafka 2.7.0总共有7个更新,与移除zookeeper工作有关,包括了kip-497新增内部代理api,来替换原本的内部同步副本(in-sync replica,isr)。
目前kafka分区负责程序(partition leader)和isr信息,皆储存在zookeeper中,控制器与分区负责程序都可以更新此状态,但由于任一方都可以更新状态,也就存在共享信息的机制,而这会使isr的更新出现延迟,也就代表数据请求可能会收到旧信息。
apache kafka 2.7.0加入了一个新的alterisr api,赋予控制器独占能力,更新分区负责程序和isr的状态,新api的好处是让数据请求,总能获得最新的状态。官方提到,要删除zookeeper,添加此api是重要的一步。
因为kafka集群的规模日益增加,用户需要在kafka中储存更多的数据,因此他们开始引入分层储存的概念。kafka的储存现在分为本地端与远端两层,用户可以将数据在本地暂存之后,丢到远端进行较长期的储存,如此,本地端储存层留存资料的时间,将会从数天降到数小时,使用hdfs或s3等储存系统的远端层,就可以将资料留存数天甚至数月的时间。
关于如何进行apache kafka 2.7.0加速移除zookeeper的分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
上一个:未签劳动合同争议仲裁申请书怎么写
下一个:种土豆的方法 怎么种植种土豆

罗茨鼓风机安全阀HFAF4QH-10C
奥克斯油烟机声音大如何解决-油烟机声音过大原因
西部数据移动硬盘质量怎么样,移动硬盘西部数据的怎么样
劳动法无故旷工多久可以辞退
怎样才能与工人打好交道,优秀项目经理这么做!
货车判断车距最简单的方法 货车判断车距最简单的方法介绍
异地案件可以在本地处理吗
房屋侵权纠纷是否有诉讼时效
腾讯云服务器怎么开启ssl
给爸妈买华为手机哪款性价比高(华为手机哪一款适合父母用)