Kafka controller重设计】的更多相关文章

转载自 huxihx,原文链接 Kafka controller重设计 目录 一.Controller是做什么的 二.Controller当前设计 三.Controller组成 四.Controller当前问题 1. 需要在多线程间共享状态 2. 代码组织混乱 3. 管理类请求与数据类请求未分离 4. Controller同步写Zookeeper且是一个分区一个分区地写 5. Controller按照一个分区一个分区的发送请求 6. Controller给broker的请求无版本号信息 7. Z…
本文主要参考社区0.11版本Controller的重设计方案,试图给大家梳理一下Kafka controller这个组件在设计上的一些重要思考.众所周知,Kafka中有个关键组件叫controller,负责管理和协调Kafka集群.网上关于controller的源码分析也有很多,本文就不再大段地列出代码重复做这件事情了.实际上,对于controller的代码我一直觉得写的非常混乱,各种调用关系十分复杂,想要完整地理解它的工作原理确实不易.好在我们就是普通的使用者,大致了解controller的工…
Kafka Controller 是 Kafka 的核心组件,在前面的文章中,已经详细讲述过 Controller 部分的内容.在过去的几年根据大家在生产环境中应用的反馈,Controller 也积累了一些比较大的问题,而针对这些问题的修复,代码的改动量都是非常大的,无疑是一次重构,因此,社区准备在新版的系统里对 Controller 做一些相应的优化(0.11.0及以后的版本),相应的设计方案见:Kafka Controller Redesign,本文的内容就是结合这篇文章做一个简单的总结.…
四.TopicDeletionManager.scala 管理topic删除的状态机,具体逻辑如下: TopicCommand发送topic删除命令,在zk的/admin/delete_topics目录下创建topic节点 controller会监听该zk目录下任何节点的变更并为对应的topic开启删除操作 controller开启一个后台线程处理topic的删除.使用该线程主要为了以后能够增加TTL(time to live)的特性.无论何时开启或重启topic删除操作时都会通知该线程.当前,…
Kafka 高可用设计 2016-02-28 杜亦舒 Kafka在早期版本中,并不提供高可用机制,一旦某个Broker宕机,其上所有Partition都无法继续提供服务,甚至发生数据丢失对于分布式系统,当集群规模上升到一定程度后,宕机的可能性大大提高,对高可用性就有了非常高要求Kafka在0.8版本提供了高可用机制,主要是增加了Partition的复制设计引入Partition的Replication之后,同一个Partition的就有了多个副本,把这些副本均匀的分布到多个Broker上,就保证…
kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性: 1. 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. 2 .高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息. 3 .支持通过kafka服务器和消费机集群来分区消息. 4 .支持Hadoop并行数据加载. 本篇属于大数据技术-> kafka 系列的开篇,本文从以下几个基础层面概述Kafka的知识点,后续在针对于单个的技术点扩展每篇博文. Kafka背景介绍…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件.我的分享主要基于三个,一个是简单介绍一下Kafka在知乎是的应用,另外一个是为什么做基于Kubernetes的Kafka平台,还有我们如何去实现了基于Kubernetes平台 Kafka在知乎的应用 Kafka一个是非常优秀的,消息或者是数据流的组件,在知乎承载了日志,数据收集,消息队列的服务日志,显而易见就包括业务,包括运行的D…
E丢丢学习App是华夏大地教育可以有限公司旗下的一款产品,专为提升学历者打造,它整合了线上+跟踪的 (E平台)功能,方便工作人员随时随地管理账号.跟进学员:同时还可以随时了解教育行业的新闻资讯.一对一求职招聘.参加考试等! 该产品在2012年3月开始做,2012年9月上线1.0版本,2019.7月更新迭代2.0版本,现在仍然在持续地迭代和优化.在这个产品中,我担任视觉设计师,负责80%的设计工作,2.0版本全部由我独立负责,完整地参与整个项目周期.您也可以在这里观看:On Behance | O…
下面是博主的公众号,后续会发布和讨论一系列分布式消息队列相关的内容,欢迎关注. --------------------------------------------------------------------------------------------------------- Design 1. Motivation 我们设计Kafka用来作为统一的平台来处理大公司可能拥有的所有实时数据源.为了做到这点,我们必须思考大量的使用场景. 它必须有高吞吐去支持大数据流,例如实时日志聚合.…
控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求.所以当单击Web页面中的超链接和发送HTML表单时, 控制器本身不输出任何东西和做任何处理.它只是接收请求并决定调用哪个模型构件去处理请求, 然后用确定用哪个视图来显示模型处理返回的数据. 在设计 Controller之前,我们同样先看看控制器所在的文件夹位置: Controller控制器接受用户请求,然后返回视图.控制器控制视图的产生.我们根据此软件的需求,设计所 需要的Controller.我们添加控制器就需要放到controll…