硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

Pinterest 开源 Kafka 集群自愈和工作负载均衡工具:DoctorKafka

  • 2017-09-03
  • 本文字数:1632 字

    阅读完需:约 5 分钟

Pinterest 是一个进行图片分享的社交站点。他们使用 Kafka 作为中心化的消息传输工具,用于数据摄取、流处理等场景。随着用户数量的增加,Kafka 集群也越来越庞大,对它的管理日趋复杂,并变成了运维团队的沉重负担,因此他们研发了 Kafka 集群自愈和工作负载均衡工具 DoctorKafka,最近他们已经在 GitHub 上将该项目开源。

根据 Pinterest 的数据工程师 Yu Yang 的博客文章介绍,该网站已经有1.75 亿以上的用户,Pin 图片的数量超过了1000 亿,目前,他们在云端运行了1000 个以上的Kafka broker。

在这样的规模下,每周他们都会遇到Kafka broker 的故障,有时候一天之内就会遇到好几次。当broker 出现故障时,待命的工程师需要及时将已经处于死亡状态的broker 替换掉,从而尽可能减少数据丢失的风险。他们有时候还需要在broker 之间转移工作负载,以保证整体负载的均衡。在替换broker 和重新平衡工作负载时,需要非常小心地创建和编辑分区重分配文件(partition reassignment file)并手动执行Kafka 脚本命令。这些操作会明显增加团队的负担。

为了扩展Kafka 服务的运维规模,Pinterest 构建了DoctorKafka,这是一项Kafka 集群自愈和工作负载均衡的服务。DoctorKafka 能够探测到Kafka broker 的故障并自动将故障broker 的负载转移给健康的broker。现在,Pinterest 已经在 GitHub 上将该项目开源。

高层架构

DoctorKafka 由三部分组成,如下图所示:

图 1 DoctorKafka 的高层架构

  • 部署在每个 broker 上的指标收集器(metrics collector),它会定期收集 Kafka 进程和主机的指标,并将其发布到一个 Kafka 主题上。在这里,使用了 Kafka 作为 broker 的状态存储,这样的话,能够简化 DoctorKafka 的搭建过程并减少对其他系统的依赖;
  • 中心化的 DoctorKafka 服务会管理多个集群,分析 broker 的状态指标以探测 broker 的故障,执行集群自愈和负载均衡的命令。DoctorKafka 会将执行的命令记录在另外一个名为“Action Log”主题上;
  • 用于浏览 Kafka 集群状态和执行流程的 Web UI 页面。图 2 展现了两个测试集群的管理界面,图 3 展现了其中一个集群的详细视图。

图 2 DoctorKafka 的前端页面

图 3 DoctorKafka 的集群视图

需要注意的是,DoctorKafka 只会采取有把握的操作,对于不确定的情况,它会给出告警。

DoctorKafka 的实际运行过程

每个 broker 上都会运行一个指标收集器,它会收集 Kafka broker 输入和输出的网络流量指标以及每个副本(replica)的状态。图 4 展现了指标收集器所收集的 broker 的部分状态。即便采用副本配额配置(replication quota setting,在 Kafka 0.10.1 之后可用的特性),主题分区的重分配通常也会带来额外的网络流量并且会影响到指标,因此,指标收集器在收集指标时会明确报告某个主题分区正在进行重分配。

图 4 指标收集器所收集到的 broker 状态

DoctorKafka 服务启动之后,它会首先读取 broker 最近 24 到 48 小时的状态,基于此,DoctorKafka 会推断每个副本工作负载所需的资源。因为 Kafka 工作负载主要是网络密集型的,DoctorKafka 主要关注副本的网络带宽使用情况。

DoctorKafka 在启动之后,会阶段性地检查每个集群的状态。当探测到 broker 出现故障时,它会将故障 broker 的工作负载转移给有足够带宽的 broker。如果在集群中没有足够的资源进行重分配的话,它会发出告警。与之类似,当 DoctorKafka 进行工作负载平衡时,它会识别出网络流量超出配置的 broker,并将工作负载转移给流量更少的 broker,或者是执行更优的领导者选举(leader election)方案来转移流量。

DoctorKafka 已经在 Pinterest 运行了数月之久,并帮助其运维人员管理着 1000 个以上的集群。现在,他们将其开源,对于 Pinterest 的工程师来说,开源是非常重要的事情。读者可以访问该项目的 GitHub 地址获取源码和相关文档。


感谢蔡芳芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-09-03 19:002783

评论

发布
暂无评论
发现更多内容

MAMP Pro(web开发环境)MAMP Pro使用技巧概述

Rose

MAMP Pro破解 MAMP Pro Mac下载 web环境开发 MAMP PRO激活码 MAMP Pro安装教程

解决centos的mysql服务3306端口无法远程连接10038问题

北桥苏

MySQL 安装宝塔

Mac电脑显示“打不开“XXX”,因为它来自身份不明的开发者的解决办法

Rose

Mac软件打不开 苹果软件 app已损坏

Android 14 Beta 正式亮相, OPPO 连续五年稳居适配第一阵营

科技热闻

提升打字速度,Master of Typing 3中文很简单~

真大的脸盆

Mac Mac 软件 打字练习 打字软件

数据剖析更灵活、更快捷,火山引擎DataLeap动态探查全面升级

字节跳动数据平台

重磅来袭!权限框架的里程碑,Spring Security电子版教程已问世

Java spring spring security 权限管理系统

来了!昇腾MindStudio全流程工具链分论坛精彩回顾,助力高效开发和迁移效率提升

科技热闻

Prompt learning 教学[基础篇]:prompt基本原则以及使用场景技巧助力你更好使用chatgpt,得到你想要的答案

汀丶人工智能

人工智能 自然语言处理 深度学习 ChatGPT prompt learning

抬杠小能手GPT

林十二XII

苹果电脑超高清4K动态壁纸:Live Wallpaper & Themes 4K Pro

Rose

Mac壁纸软件 花见壁纸 Live Wallpaper 动态壁纸高清

2023年北京.NET线下技术沙龙来了!大咖分享,还有精品好礼等你

MASA技术团队

.net MASA

网心科技荣获第二十届“深圳知名品牌”荣誉称号

网心科技

共筑数字化未来 金山办公携手华为云完成文档中心和GaussDB适配

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

JMeter笔记5 |Badboy使用和录制

Jmeter 性能测试 自动化测试 接口测试 脚本录制

从立项到发布仅三个月,开源技术问答社区 Answer 是如何诞生的?

万事ONES

京喜APP - 图片库优化 | 京东云技术团队

京东科技开发者

性能优化 APP开发 企业号 5 月 PK 榜 图片库优化

如何做好项目管理工作

老张

项目管理 pmp PMP Certification

Mac苹果电脑如何设置色彩滤镜?

Rose

MacBook 苹果电脑使用教程 色彩滤镜功能 Mac使用

ATLAS.ti 8 for Mac(定性数据分析工具) v8.4.4汉化版

Rose

数据分析 苹果软件资源站 ATLAS.ti 8 ATLAS.ti 8 Mac破解版

“三问五步”落地医疗行业数据安全建设体系|盾见

极盾科技

数据安全

iOS MachineLearning 系列(15)—— 可进行个性化更新的CoreML模型

珲少

揭秘Karmada百倍集群规模多云基础设施体系

华为云开发者联盟

云计算 云原生 华为云 华为云开发者联盟 企业号 5 月 PK 榜

PhotoBulk:Mac上批量调整图片大小、分辨率、添加水印和转换格式的工具

Rose

苹果软件资源站 PhotoBulk for Mac 图片水印添加 批量调整图片 PhotoBulk Mac破解版

来了!昇腾MindStudio全流程工具链分论坛精彩回顾,助力高效开发和迁移效率提升

极客天地

八股MQ007——浅谈Broker的网络架构

Codyida

后端、

Blender操作笔记——基本操作

Finovy Cloud

blender 3D绘图

带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性

汀丶人工智能

人工智能 ChatGPT

泰裤拉,安卓反编译居然可以这么简单——Jadx

吴脑的键客

在行 | “数智”为离散制造发展注入动能

用友BIP

秒验 创建应用

MobTech袤博科技

Pinterest开源Kafka集群自愈和工作负载均衡工具:DoctorKafka_语言 & 开发_张卫滨_InfoQ精选文章