美文网首页数客联盟Kafka
KafkaScheduler 调度分析

KafkaScheduler 调度分析

作者: WestC | 来源:发表于2018-02-27 10:39 被阅读74次

kafkaScheduler调度模块

KafkaScheduler作为broker进程的调度模块,提供对线程池的封装,对于一些周期性/非周期性执行的逻辑,可用于周期性调度/非周期调度。主要包含如下流程:

周期的调度

模块 定时任务 参数 默认 执行逻辑 备注
LogManager CleanupLogs log.retention.check.interval.ms 300s 过期日志文件清理
LogManager flushDirtyLogs log.flush.scheduler.interval.ms Integer.Max 刷日志到日盘
LogManager checkpointRecoveryPointOffsets log.flush.offset.checkpoint.interval.ms 60s 将topicandpartition的checkpoint写入磁盘 写入文件recovery-point-offset-checkpoint
ReplicaManager checkpointHighWatermarks replica.high.watermark.checkpoint.interval.ms 5s 对hw进行checkpoint 写入文件replication-offset-checkpoint
ReplicaManager maybeShrinkIsr replica.lag.time.max.ms 10s 检查是否需要减少isr列表中的replica
ReplicaManager maybePropagateIsrChanges NA 2.5s 检查是否生成/广播ISr列表/需要写入zk zk目录为/isr_change_notification/isr_change_
GroupMetadataManager deleteExpiredOffsets offsets.retention.check.interval.ms 600s 删除过期的offset 一天之后失效
ZookeeperConsumerConnector autoCommit auto.commit.interval.ms 60s 打开自动commit的场景下有效,默认值AutoCommitInterval,默认存储在zk,可以设置存储在kafka,以及zk
KafkaController checkAndTriggerPartitionRebalance leader.imbalance.check.interval.seconds 300s 执行分区均衡 打开自动分区均衡的场景下有效,当分区leader不在perferred节点比例大于leader.imbalance.per.broker.percentage/100时(默认10%),进行

非周期调度

模块 定时任务 参数 默认 执行逻辑 备注
Log flush(newOffset) NA NA flush日志到磁盘 roll方法中调用
Log deleteSeg NA NA 删除segment 删除前会先修改log和index文件后缀.deleted
GroupMetadataManager loadGroupsAndOffsets NA NA 加载partition的group和offset信息 在_offset_consumer的partition变为leader时执行
GroupMetadataManager removeGroupsAndOffsets NA NA 去除partition的group和offset信息 在_offset_consumer的partition变为follower时执行

相关文章

  • KafkaScheduler 调度分析

    kafkaScheduler调度模块 KafkaScheduler作为broker进程的调度模块,提供对线程池的封...

  • KafkaScheduler

    KafkaScheduler用于启动定时任务,根据配置的backgroundThreads的数目初始化线程池 ex...

  • 8进程调度的时机和进程切换

    安大大 + 原创作品转载请注明出处 + 《Linux操作系统分析》MOOC课程 进程调度与进程调度时机分析 之所以...

  • RxSwift调度者-scheduler源码解析(下)

    这一篇关于调度的具体流程分析,如有对RxSwift调度者不太了解的观客,请移步RxSwift调度者-schedul...

  • MES系统总体框架

    生产运行管理系统用于公司的日常生产调度管理,实现对生产成本的实时控制与分析、调度管理的综合分析和决策支持、工艺...

  • 深入分析kube-scheduler

    深入分析kube-scheduler 从源代码角度分析kube-scheduler,重点分析Pod调度过程。 st...

  • airflow-kubernetes_executor源码分析

    airflow-kubernetes_executor源码分析 上一篇分析了调度部分,今天继续分析执行器 Kube...

  • k8s Affinity 亲和性专题源码分析 (二)

    前面文章一部分已有介绍Pod亲和性相关的调度策略算法分析,接下来我们继续Pod相关调度算法分析: 三 POD亲和性...

  • RxJava2 源码分析二

    文章目录 前言 RxJava2 线程调度 RxJava2 怎么进行线程调度 总结 前言 经过RxJava2源码分析...

  • 进程调度跟踪分析

    此文仅用于MOOCLinux内核分析作业张依依+原创作品转载请注明出处 + 《Linux内核分析》**MOOC课程...

网友评论

    本文标题:KafkaScheduler 调度分析

    本文链接:https://www.haomeiwen.com/subject/jbepxftx.html