写点什么

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:001754
用户头像

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

关注

评论 2 条评论

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

imazingAPP软件怎么安装到苹果手机电脑上面?

茶色酒

imazing

微信小程序开发系列 (四) :微信小程序的页面跳转路由设计

汪子熙

微信小程序 微信 前端开发 微信开发 4月月更

一种很爽的学习方法,被我Get到了!

博文视点Broadview

提前起跑的OPPO,靠闪充完成一次“三级跳”

脑极体

微信小程序开发系列 (三) :微信小程序如何响应用户点击事件和微信平台 API 的使用方法介绍

汪子熙

微信小程序 微信公众平台 前端开发 4月月更 微信平台

华为云大咖带你玩转云原生基础设施之K8s

坚果

4月月更

Go 语言入门很简单:正则表达式

宇宙之一粟

正则表达式 Go 语言 4月月更

业务架构师的思维转变

涛哥 数字产品和业务架构

微服务与领域驱动设计,架构实践总结

架构 微服务 领域驱动设计 软件架构

元宇宙是人类的终极未来吗?

涛哥 数字产品和业务架构

元宇宙

云原生训练营学习总结

arctec

别再用老版云效Projex项目协作了,该升级了

阿里云云效

阿里云 项目管理 研发团队 项目协作 项目协作工具

redis优化系列(四)哨兵机制

乌龟哥哥

4月月更

Docker下,极速体验pinpoint1.6.3

程序员欣宸

Java 分布式 4月月更

大数据培训Spark SQL底层执行流程

@零度

Sparksql 大数据开发

13W字!2021最新发布互联网大厂高频面试技术点!

爱好编程进阶

Java 程序员 后端开发

元宇宙(Metaverse)对普通人意味着什么?

涛哥 数字产品和业务架构

元宇宙

C语言总结_数组全方位练习

DS小龙哥

4月月更

想学习算法交易的工程师们,机会来啦~

非凸科技

rust 招聘 基金 量化交易 算法交易

ThinkPHP6+swoole+easywechat使用教程

CRMEB

自己动手写 Docker 系列 -- 6.5 启动时给容器配置网络

Go Docker 4月月更

聊聊Kotlin中的lambda

北洋

kotlin Andriod 4月月更

元宇宙或许翻译错了

涛哥 数字产品和业务架构

元宇宙

[Day24]-[二叉树] 相同树

方勇(gopher)

LeetCode 二叉树 DFS BFS 数据结构算法

imazing是什么软件?

茶色酒

imazing

Spark SQL 字段血缘在 vivo 互联网的实践

vivo互联网技术

大数据 spark Sparksql 数据处理

云原生训练营 -Week10

jjn0703

云原生训练营

苹果手机怎么恢复备份?iOS备份恢复教程

茶色酒

苹果手机备份

《Mybatis 手撸专栏》第6章:数据源池化技术实现

小傅哥

Java 面试 小傅哥 mybatis 源码学习

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