写点什么

Pinterest 基于 AWS 规模化使用 Apache Kafka 的实践经验

  • 2018-12-13
  • 本文字数:999 字

    阅读完需:约 3 分钟

Pinterest基于AWS规模化使用Apache Kafka的实践经验

在 Pinterest,Apache Kafka 被用于为实时流应用程序传输数据、记录日志和可视化监控指标。Pinterest 的 Kafka 托管在 AWS 上,为了实现复制和高可用性,其安装使用了 MirrorMaker 和 DoctorKafka 工具。


Pinterest 的技术主管Yu Yang写道,Pinterest 的Kafka安装运行在 2000 多个“代理(broker)”上,分布在 AWS 的三个地区,每天处理 8 亿多条、1.2PB 消息。他们的主要 Kafka 工具集包括 Kafka 的 MirrorMaker 和 Pinterest 自己的 DoctorKafka。MirrorMaker 消费源集群中的数据并将其发布到目标集群,实际上是创建源集群的副本。Pinterest 的团队使用它在三个 AWS 区域之间传播数据。大多数代理都位于 us-east-1,尽管这是 AWS 历史最悠久的区域,但它也有自己的问题。每个集群中的 Kafka 代理分布在三个可用性区域中,每个主题分区的副本都分布在三个区域中,因此,最多可以承受两个代理失败。


Kafka 代理失败很常见。替换失败的代理和重新平衡工作负载“需要谨慎地创建和编辑分区再分配文件,并手动执行 Kafka 脚本命令”,Yang 在前一篇文章中写道。其结果是DoctorKafka,一个自动化这些步骤的开源工具。DoctorKafka 可以检测失败,并自动将工作负载分配给健康的代理。它基于“主代理(master-agent)”模型。“代理体(agent)”在每个代理上运行并收集指标,中央主服务器分析这些指标。中央服务器确定故障并运行命令采取纠正措施。DoctorKafka 是“保守”的,因为它只有在确定的时候才会采取纠正措施,否则就会发出警告。大多数大型 Kafka 部署都会使用一种复制策略,使用 MirrorMaker 或类似的工具


Pinterest 在 AWS d2.2xlarge 实例上运行 Kafka。据 Yang 介绍,由于EBS争用导致的性能问题,他们从st1 EBS磁盘经过吞吐量优化的 c3.2xlarge 实例转到了有本地存储的 d2 实例。然而,其他人在他们的基准测试中报告了相反的结果。Kafka 还构成了 Pinterest 日志基础设施的基础,每天处理 100+TB 的数据。服务将数据写到磁盘,日志代理Singer从磁盘获取数据并写到 Kafka。另一个自定义工具Secor从 Kafka 获取日志消息,并将它们持久化到 S3,以克服“Kafka 的弱最终一致性模型”的不足。


未来,Pinterest 将探索把Kubernetes作为 Kafka 部署的抽象层,一些组织已经在这样做了。Pinterest 的一些服务已经转移到容器中。另一个目标是再次探索 EBS 存储,因为新的 EBS 产品经过了更好的优化。


查看英文原文:Scaling Apache Kafka at Pinterest


2018-12-13 14:001657
用户头像

发布了 1008 篇内容, 共 406.6 次阅读, 收获喜欢 345 次。

关注

评论 2 条评论

发布
用户头像
企鹅3362六29503 高速外..网.梯.子 免.费试..用 gma.il/ytb/twi.tt无限.制 这世上有一条路无论如何也不能走,那就是歧途,只要走错一步结果都会是粉身碎骨。
2019-01-02 20:21
回复
没有更多了
发现更多内容

如何使用 JavaScript 扁平化/非扁平化嵌套 JSON 对象?

devpoint

JavaScript json Object 11月日更

软件测试中的服务虚拟化

刘冉

Mock测试框架 服务虚拟化

模块八作业

potti

架构实战训练营模块三

人生就是梦

「架构实战营」

双11硝烟散去,零售业开始“外卷”

脑极体

点进来,与白洞一起体验一场沉浸式智慧轨道之旅

白洞计划

谁有粉?就爬谁!他粉多,就爬他!Python 多线程采集 260000+ 粉丝数据

梦想橡皮擦

11月日更

如何使用Camtasia给视频打码

淋雨

Camtasia

Flink 实践教程-入门(6):读取 PG 数据写入 ClickHouse

腾讯云大数据

flink 流计算 Oceanus

Flink 实践教程-入门(7):消费 Kafka 数据写入 PG

腾讯云大数据

flink 流计算 Oceanus

NodeJs深入浅出之旅:内存控制(上)🐍

空城机

大前端 Node 11月日更

[架构实战营]模块三作业:学生管理系统详细架构设计

Geek_99eefd

「架构实战营」

瀑布vs敏捷质量控制

刘冉

敏捷开发 敏捷测试

服务端系统性能测试

刘冉

性能测试

软件安全测试

刘冉

软件测试 安全测试

我们的敏捷测试实践

刘冉

软件测试 敏捷测试

通过 Feature Level 动态控制 SAP Spartacus 的页面显示

汪子熙

typescript angular SAP 11月日更

敏捷中的威胁建模

刘冉

敏捷开发 威胁建模 安全测试

一分钟搞懂DDD

俞凡

架构 DDD

架构实战营模块三作业

spark99

架构实战营

自定义View:如何实现图片放大后拖动和滑动效果

Changing Lin

11月日更

springboot中poi操作合集

小鲍侃java

11月日更

AI 预测:基于流计算 Oceanus(Flink) 实现病症的实时预测

腾讯云大数据

flink 流计算 Oceanus

性能测试之并发模型对比(JMeter,Locust和Gatling篇)

刘冉

软件测试 性能测试 自动化测试

北鲲云超算平台对于基因组学研究能够提供哪些帮助?

北鲲云

学生管理系统设计文档

Geek_cb2b43

基于业务和平台理解数字营销概念

架构 CDP DSP DMP 数据服务

分布式技术专题-服务架构设计-带你统一认识一下系统架构及分析和总结

码界西柚

架构设计 总结思考 11月日更 架构介绍

Django中的超级用户和自己创建app原来这么简单!

老表

Python django web开发 11月日更 博客系统

设计消息队列存储消息数据的MySQL表格

白开水又一杯

#架构实战营

dart系列之:dart类的扩展

程序那些事

flutter dart 程序那些事 11月日更

Pinterest基于AWS规模化使用Apache Kafka的实践经验_语言 & 开发_Hrishikesh Barua_InfoQ精选文章