写点什么

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

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

关注

评论 2 条评论

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

技术干货 | 基于Doris构建的小程序私域流量增长

百度开发者中心

百度智能小程序 百度 Doris

使用Travis CI为工程搭建一个持续集成服务。

梁龙先森

大前端 持续集成 2月春节不断更

大作业二

ray-arch

如何用 4 个小时搭建一个新 “Clubhouse” ,引爆声音社交新风口

阿里云视频云

App 音视频 WebRTC RTC clubhouse

LeetCode题解:74. 搜索二维矩阵,二分查找,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么

飞天小牛肉

程序员 面试 计算机网络 网络协议 2月春节不断更

第四章作业(一)

LouisN

大作业一

ray-arch

阿里云第七代ECS云服务器: 整体算力提升40%

赵钰莹

产品经理训练营 -- 第四周作业

Denny-xi

产品经理 产品经理训练营

SRT协议初识

Changing Lin

2月春节不断更

Redis Sentinel 源码:Redis的高可用模型分析

华为云开发者联盟

数据库 redis 高可用 框架 redis sentinel

华为 Python网络自动化

艺博东

Python 网络

作业4

瑾瑾呀

编程范式( Programming paradigm )简介

引花眠

编程范式

解决Homebrew下载更新速度慢问题

现实中游走

homebrew

ARTS打卡 第30周

引花眠

微服务 ARTS 打卡计划

架构师训练营 2 期 大作业一

架构师 架构师训练营第2期

京东App Swift 混编及组件化落地

京东科技开发者

swift 开发者

第4周左右

林亚超

大学寒假这样过,过完惊艳所有人,不只是你的宿友,还有千千万万个程序员同行们!!!

沉默王二

程序员

研发效能,productivity 还是 performance

李小腾

无责任畅想:云原生中间件的下一站

阿里巴巴云原生

容器 微服务 云原生 dubbo 中间件

1.1w字,10图,轻松掌握 BlockingQueue 核心原理

马丁玩编程

阻塞队列 图解源码分析 JUC

【STM32】点亮LED

AXYZdong

硬件 stm32 2月春节不断更

第四次作业&第五次作业

yoki

第6周作业

MR.X

一看就懂的var、let、const三者区别

蛙人

JavaScript

「产品经理训练营」第四章作业

Sòrγy_じò ぴé

产品经理训练营 极客大学产品经理训练营 产品训练营

Elastic query string search

escray

Lucene Elastic Search 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

工具介绍 | 百度分布式配置中心BRCC正式开源

百度开发者中心

百度 开源

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