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
Pinterest基于AWS规模化使用Apache Kafka的实践经验相关推荐
- 基于AWS的云架构设计最佳实践——万字长文:云架构设计原则|附PDF下载
译者序 AWS用户广泛,产品线复杂,AWS发布的白皮书<Architecting for the Cloud-AWS Best Practices>介绍了常见场景下云架构的最佳实践,不仅对 ...
- pythonspark实践_基于Python的Spark Streaming Kafka编程实践
版权声明:本文为CSDN博主原创文章,未经博主允许不得转载. 说明 Spark Streaming的原理说明的文章很多,这里不做介绍.本文主要介绍使用Kafka作为数据源的编程模型,编码实践,以及一些 ...
- 基于AWS的云服务架构最佳实践
近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关理念,并以最佳实践的方式加以实施.在今天的"信息时代",这些理念更加适用于不断增长的数据集,不可预知的流量模式,以及 ...
- 基于AWS的云服务架构最佳实践 #CSDN博文精选# #IT# #云服务实践#
大家好,小C将继续与你们见面,带来精选的CSDN博文~ 在这里,你将收获: 将系统化学习理论运用于实践,系统学习IT技术 学习内容涵盖数据库.软件测试.主流框架.领域驱动设计和第三方生态等,离全栈工程 ...
- apache kafka技术分享系列(目录索引)
apache Kafka中国QQ社区 中国社区QQ群1:162272557 未满 收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高 中国社区QQ群2:414762562 ...
- 基于事件驱动架构构建微服务第12部分:向Apache KAFKA生成事件
原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part12-produce-e ...
- 基于事件驱动架构构建微服务第13部分:使用来自Apache KAFKA的事件并将投影流传输到ElasticSearch...
原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part13-read-mode ...
- Apache Kafka 迎来了“后浪”
作者丨Tina 采访嘉宾丨滕昱 有人说世界上有三个伟大的发明:火,轮子,以及 Kafka. 发展到现在,Apache Kafka 无疑是很成功的,Confluent 公司曾表示世界五百强中有三分之一的 ...
- grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST
grpc 机器学习/深度学习模型可以通过不同的方式进行预测. 我的首选方法是将分析模型直接部署到流处理应用程序(如Kafka Streams或KSQL )中. 您可以例如使用TensorFlow fo ...
最新文章
- 不同分辨率下Apriltag识别精度测试
- 烧写文件系统——韦东山嵌入式Linux学习笔记11
- 【队列】【225. 用队列实现栈】【简单】
- maven打包指定main函数
- 二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf
- 离合器预减振超载造成变速箱怠速异响matlab与python仿真分析
- 第六章 函数逼近-强化学习理论学习与代码实现(强化学习导论第二版)
- pandas.DataFrame API
- 【粉丝福利】Logo评选投票,礼品赠送!
- D1、D系列分辨率是多少
- java车牌号识别EasyPR_EasyPR-Java
- 2022年应届大学生做毕设是论文好做点还是设计好,哪个性价比更高
- win10换win7系统步骤操作详解
- 程序员数学(18)–平行四边形
- 阿里云计算巢软件免费试用中心正式上线,企业用户可免费试用1个月
- 关于信息安全风险评估,你需要知道的
- Calcium不支持中文VS
- 做电商网站服务器在哪里,电商网站服务器如何选择
- Java 3DES加密解密(Commons.Codec Base64)
- 微信小程序实现watch属性监听数据变化
热门文章
- 【python】使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来
- linux ext4增加大小,如何修改 ext4 文件系统的大小
- c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...
- java object finalize_Java Object finalize() 方法
- ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
- python3.7版本_Centos7升级Python3.7.3版本
- python正则取字符串日期_python 正则表达式获取字符串中所有的日期和时间
- 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法
- Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节
- Redis初学:7(Set类型)