在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的实践经验相关推荐

  1. 基于AWS的云架构设计最佳实践——万字长文:云架构设计原则|附PDF下载

    译者序 AWS用户广泛,产品线复杂,AWS发布的白皮书<Architecting for the Cloud-AWS Best Practices>介绍了常见场景下云架构的最佳实践,不仅对 ...

  2. pythonspark实践_基于Python的Spark Streaming Kafka编程实践

    版权声明:本文为CSDN博主原创文章,未经博主允许不得转载. 说明 Spark Streaming的原理说明的文章很多,这里不做介绍.本文主要介绍使用Kafka作为数据源的编程模型,编码实践,以及一些 ...

  3. 基于AWS的云服务架构最佳实践

    近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关理念,并以最佳实践的方式加以实施.在今天的"信息时代",这些理念更加适用于不断增长的数据集,不可预知的流量模式,以及 ...

  4. 基于AWS的云服务架构最佳实践 #CSDN博文精选# #IT# #云服务实践#

    大家好,小C将继续与你们见面,带来精选的CSDN博文~ 在这里,你将收获: 将系统化学习理论运用于实践,系统学习IT技术 学习内容涵盖数据库.软件测试.主流框架.领域驱动设计和第三方生态等,离全栈工程 ...

  5. apache kafka技术分享系列(目录索引)

    apache Kafka中国QQ社区 中国社区QQ群1:162272557 未满  收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高 中国社区QQ群2:414762562 ...

  6. 基于事件驱动架构构建微服务第12部分:向Apache KAFKA生成事件

    原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part12-produce-e ...

  7. 基于事件驱动架构构建微服务第13部分:使用来自Apache KAFKA的事件并将投影流传输到ElasticSearch...

    原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part13-read-mode ...

  8. Apache Kafka 迎来了“后浪”

    作者丨Tina 采访嘉宾丨滕昱 有人说世界上有三个伟大的发明:火,轮子,以及 Kafka. 发展到现在,Apache Kafka 无疑是很成功的,Confluent 公司曾表示世界五百强中有三分之一的 ...

  9. grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST

    grpc 机器学习/深度学习模型可以通过不同的方式进行预测. 我的首选方法是将分析模型直接部署到流处理应用程序(如Kafka Streams或KSQL )中. 您可以例如使用TensorFlow fo ...

最新文章

  1. 不同分辨率下Apriltag识别精度测试
  2. 烧写文件系统——韦东山嵌入式Linux学习笔记11
  3. 【队列】【225. 用队列实现栈】【简单】
  4. maven打包指定main函数
  5. 二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf
  6. 离合器预减振超载造成变速箱怠速异响matlab与python仿真分析
  7. 第六章 函数逼近-强化学习理论学习与代码实现(强化学习导论第二版)
  8. pandas.DataFrame API
  9. 【粉丝福利】Logo评选投票,礼品赠送!
  10. D1、D系列分辨率是多少
  11. java车牌号识别EasyPR_EasyPR-Java
  12. 2022年应届大学生做毕设是论文好做点还是设计好,哪个性价比更高
  13. win10换win7系统步骤操作详解
  14. 程序员数学(18)–平行四边形
  15. 阿里云计算巢软件免费试用中心正式上线,企业用户可免费试用1个月
  16. 关于信息安全风险评估,你需要知道的
  17. Calcium不支持中文VS
  18. 做电商网站服务器在哪里,电商网站服务器如何选择
  19. Java 3DES加密解密(Commons.Codec Base64)
  20. 微信小程序实现watch属性监听数据变化

热门文章

  1. 【python】使用python脚本将LFW数据中1672组同一个人多张照片拷贝出来
  2. linux ext4增加大小,如何修改 ext4 文件系统的大小
  3. c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...
  4. java object finalize_Java Object finalize() 方法
  5. ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
  6. python3.7版本_Centos7升级Python3.7.3版本
  7. python正则取字符串日期_python 正则表达式获取字符串中所有的日期和时间
  8. 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法
  9. Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节
  10. Redis初学:7(Set类型)