特别放送(五) | Kafka 社区的重磅功能:移除 ZooKeeper 依赖
Clients 演进
- 深入了解
- 翻译
- 解释
- 总结
Kafka社区最新推出的功能引起了广泛关注:移除对ZooKeeper的依赖。这一变化将使Kafka成为一个独立的框架,无需额外维护ZooKeeper集群。文章详细介绍了Kafka社区的计划和实施过程,包括0.8.x版本和0.11.x版本及后续版本的功能变迁,以及Kafka的Producer、Consumer和Admin Tool等客户端逐步摆脱了对ZooKeeper的依赖。此外,文章还探讨了Broker端的现状,指出Kafka Broker目前对ZooKeeper的重度依赖,并提出了解决方案。文章还讨论了Network Partition的防范和解决方案,以及Kafka社区如何解决元数据不一致等问题。总体而言,Kafka社区的这一变化将为用户带来更便捷的Kafka使用体验,同时也展现了Kafka社区在技术上的不断创新和进步。值得关注的是,Kafka采用了Metadata as an Event Log + Controller quorum的解决方案,通过将元数据作为Log的方式保存,实现了高可用性、顺序性、增量同步性和可监控性,同时采用Raft来实现Controller quorum,为Kafka的发展提供了新的技术支持。文章还介绍了Kafka社区计划分三步来完成对ZooKeeper的依赖的移除,并探讨了为何社区不直接采用第三方成熟的Raft库来实现Controller的选举。整体而言,本文详细介绍了Kafka社区的技术创新和发展规划,对于关注Kafka技术发展的读者具有重要参考价值。
《Kafka 核心源码解读》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- JustDoDT讲得真不错
作者回复: 谢谢鼓励:)
2020-06-273 - 柠檬C在初步学习kafka和es的时候,就感到kafka和es在架构上其实非常类似,比如数据都是基于LSMTree组织、数据分片/分区、分区也有主从的概念等,甚至es数据同步,也采取了像kafka一样的2步拉取更新HW、epoch避免不一致的方式。请问老师,是分布式领域有什么论文支撑这么多的开源组件采用这种实现吗?否则也太巧了 es不同于kafka的地方在于es基于bully算法和raft算法实现选主,不依赖外部服务,但对于raft实现也有所改动。期待未来kafka与es在架构上又一次进行架构上的比较
作者回复: 这个话题有点大了。分布式领域的确有一些通用的问题是所有框架都要面临和解决的,比如Leader选举、replication、partitioning、failover、一致性等。每一个自然都有相应的研究论文成果出来。
2020-09-171 - 兔2🐰🍃胡老师,请教下2.2.2之后的版本都向下兼容么,目前遇到Security vulenerabilities ,zk3.4.13。试过2.3.1及之后的,又有Netty 相关包的security risk。请问这个有什么好的方法不。或者用2.6之后的版本会有兼容问题么。
作者回复: 目前没有得知有大的兼容性问题。你是使用什么版本时碰到了这个问题?
2021-05-31 - 曾轼麟我曾经试过尝试使用第三方的共识算法库,但是在导入项目的时候发现其依赖了各种版本的jar,甚至有些jar的版本比我当前项目中已经依赖的版本还低,而且两个版本是冲突的,高版本的jar中删除了一些类,导致启动的时候出现各种情况,比如classNotFound 或者 classNotDefiend,我想社区可能也想避免这种情况
作者回复: 非常有可能出现这种情况。当然,社区自己实现Raft-based protocol的一个原因是自己实现的可以自行把控,不受第三方依赖,否则和移除Zk的初衷不符
2020-08-062 - 李先生胡哥,有个问题。kafka生产者在高并发的情况下,有时候会报强制关闭的异常:IllegalStateError: Producer is closed forcefully.这种有什么好的解决方案吗?
作者回复: 是否调用了producer.close方法?
2020-07-182 - Cryhard等这一切都实现,应该是2021年的3.0版本了吧?
作者回复: 这个要看KIP-500的进度了:)
2020-06-28 - 李家大少爷李昂初另一个好处在于,采用了这套机制后,Kafka 可以做元数据的缓存了(metadata caching),即 Broker 能够把元数据保存在磁盘上。 这里应该是元数据的持久化吧?本来元数据就是存在内存当中的。2022-04-121
- 大严浩浩荡荡的一篇好文2021-01-261