写点什么

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

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

关注

评论 2 条评论

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

【架构实战营】模块五作业

Abner S.

#架构实战营

5秒到1秒,记一次效果“非常”显著的性能优化

Java 编程 架构 性能优化 计算机

带你破解DDOS攻击的原理

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

实时数据引擎系列(一): 新鲜的数据流

tapdata

数据库 hadoop Tapdata 实时数据引擎 OLTP

【从零开始学爬虫】采集当当网图书商品信息

前嗅大数据

大数据 爬虫 数据采集

React Native 页面浏览事件采集方案 | 数据采集

神策技术社区

大前端 后端 代码 数据采集

一文了解全球主要经济体对区块链技术的采纳情况和监管政策

CECBC

那些年用星环产品解决的业务难点…

星环科技

征文 星环科技

数字人民币银银合作以及平台接入的模式分析

CECBC

菜谱系统小成阶段,Python Web 领域终于攻占一个小山头

梦想橡皮擦

8月日更

四十四本iOS开发书籍资料,务必赶紧保存!

iOSer

微信公众号 ios开发 iOS书籍 iOS公众号

“古老”茶产业碰上“年轻”区块链,能否擦出新火花?

旺链科技

区块链 产业 茶叶

短视频go研发框架实践

百度Geek说

百度 架构 后端 短视频 hulk

如何做上线前的实操演练?

boshi

项目管理

数字货币量化交易平台源码搭建|量化交易所自动交易软件开发

Geek_23f0c3

去中心化交易所系统开发 量化跟单 合约量化

智能CRM销氪强势崛起, CRM赛道变数几何?

ToB行业头条

CRM

【墨天轮专访第一期】人大金仓:国产数据库的竞争本质就是人才的竞争

墨天轮

数据库 国产数据库 KingBase 人大金仓

☕【Java技术指南】「开发实战专题」Lombok插件开发实践必知必会操作!

码界西柚

Java 编译 lombok 8月日更

Swift 与 Objective-C:您应该为下一个 iOS 移动应用选择哪个语言?

iOSer

ios objective-c swift ios开发

网络安全产品之堡垒机介绍以及应用案例

行云管家

网络安全 数据安全 堡垒机 成功案例

阿里技术大牛终于分享出了解决我多年困扰的微服务开发架构文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

赋能智慧社区,多维度提升管理质效

CECBC

如何动手做出一个 CPU

Java 编程 架构 cpu 电脑

为什么代码会有好坏?

鉴释

程序员 代码 代码规范

地表最强:iOS安全黑宝书中文版来袭

博文视点Broadview

腾讯T8面试官纯手打总结Java888道高频面试真题笔记+Java面试金典

Java~~~

Java 架构 面试 算法 JVM

智能量化交易系统搭建|量化交易APP系统源码开发

量化系统19942438797

量化交易 智能量化

MySQL 系列教程之(八)DQL:子查询与表连接

若尘

MySQL 数据库 8月日更

基于java springboot vue uniapp商城源码(毕设)

清风

Java uniapp 商城项目 毕业设计

Python代码阅读(第13篇):检测列表中的元素是否都一样

Felix

Python 编程 Code Programing 阅读代码

面试侃集合 | ArrayBlockingQueue篇

码农参上

队列 8月日更

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