Apache Kafka源码分析 - kafka controller】的更多相关文章

前面已经分析过kafka server的启动过程,以及server所能处理的所有的request,即KafkaApis 剩下的,其实关键就是controller,以及partition和replica的状态机 这里先看看controller在broker server的基础上,多做了哪些初始化和failover的工作   最关键的一句, private val controllerElector = new ZookeeperLeaderElector(controllerContext, Zk…
1. Kafka.scala 在Kafka的main入口中startup KafkaServerStartable, 而KafkaServerStartable这是对KafkaServer的封装 1: val kafkaServerStartble = new KafkaServerStartable(serverConfig) 2: kafkaServerStartble.startup 1: package kafka.server 2: class KafkaServerStartable…
系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 实际问题 二. 什么是Kafka, 如何解决这些问题的 三. 基本原理 1. 基本框架 2. Topic 3. Partition 和 Consumer Group 4. Replica 5. Broker & KafkaController 五. 源码结构 1. 源码地址 2. 目录结构 六. 总结 一. 实际问题 我们在业务开发的过程中,会涉及很多"事件驱动"…
持续更新中,敬请关注! 目录 <Kafka源码分析>系列文章计划按"数据传递"的顺序写作,即:先分析生产者,其次分析Server端的数据处理,然后分析消费者,最后再补充部分事务和流式计算相关内容. 一. 概述 介绍Kafka的背景.定位.基本思想及原理以及源码结构等内容. 二. 生产者 (Writing) 分析生产者的线程模型.压缩机制等方面内容. 三. Server端-消息存储 (待写作) 承接上一篇生产者文章,分析Producer发来的消息在Server端是如何存的.…
系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 业务模型 1.1 概念梳理 1.2 文件分析 1.2.1 数据目录 1.2.2 .log文件 1.2.3 .index和.timeindex文件 1.3 顺序IO 1.4 端到端压缩 二. 源码结构 2.1 核心类 2.1.1 核心类之间的关系 2.1.1 数据传递对象 2.1.2 ReplicaManager 2.1.3 Partition 2.1.4 Replica 2.1.…
client-go之Controller&Processor源码分析 1.controller与Processor概述 Controller Controller从DeltaFIFO中pop Deltas出来处理,根据对象的变化更新Indexer本地缓存,并通知Processor相关对象有变化事件发生. Processor Processor根据Controller的通知,即根据对象的变化事件类型,调用相应的ResourceEventHandler来处理对象的变化. 先通过一张informer概…
原文地址:http://www.aboutyun.com/thread-9938-1-1.html 问题导读1.Kafka提供了Producer类作为java producer的api,此类有几种发送方式?2.总结调用producer.send方法包含哪些流程?3.Producer难以理解的在什么地方? producer的发送方式剖析Kafka提供了Producer类作为java producer的api,该类有sync和async两种发送方式.sync架构图 async架构图 调用流程如下:…
0. 关键概念 关键概念 Concepts Function Topic 用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上. Partition 是Kafka中横向扩展和一切并行化的基础,每个Topic都至少被切分为1个Partition. Offset 消息在Partition中的编号,编号顺序不跨Partition(在Partition内有序). Consumer 用于从Broker中取出/消费Message. Producer 用于往Broker中发送/生产Me…
一.前言 任何消息队列都是万变不离其宗都是3部分,消息生产者(Producer).消息消费者(Consumer)和服务载体(在Kafka中用Broker指代).那么本篇主要讲解Producer端,会有适当的图解帮助理解底层原理. 一.开发应用 首先介绍一下开发应用,如何构建一个KafkaProducer及使用,还有一些重要参数的简介. 1.1 一个栗子 /** * Kafka Producer Demo实例类. * * @author GrimMjx */ public class Produc…
系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 使用方式 step 1: 设置必要参数 step 2: 创建KafkaProducer step 3:构造要发送的消息 step 4:发送消息 二. 线程模型 三. 源码分析 1. 主线程 1.1 KafkaProducer属性分析 1.2 ProducerInterceptors 1.3 元数据获取 1.4 Serialize 1.5 Partition选择 2. Record…