9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

Pinterest 使用 Kubernetes 和 Helix 构建下一代异步计算平台 Pacer

  • 2023-09-12
    北京
  • 本文字数:1119 字

    阅读完需:约 4 分钟

大小:796.61K时长:04:31
Pinterest使用Kubernetes和Helix构建下一代异步计算平台Pacer

Pinterest 推出其下一代异步计算平台 Pacer,用以取代旧的解决方案 Pinlater。随着公司的发展,Pinlater 在伸缩性和可靠性方面面临着挑战。新的架构使用 Kubernetes 来调度作业,使用 Apache Helix 来进行集群管理。


Pinterest 之前构建了一个异步作业执行平台Pinlater,并在几年前将其开源。Pinlater 已在生产环境中使用了多年,并支持许多关键的功能领域。Pinterest 在AWS EC2上运行了几个 Pinlater 集群,每分钟处理数百万个任务。


Pinterest 软件工程师Li QiChen Zhihuang解释了促使他们构建新平台的动机:


随着 Pinterest 在过去几年的增长和 Pinlater 流量的增加,我们发现 Pinlater 存在许多局限性,包括伸缩性瓶颈、硬件效率、缺乏隔离性和可用性。我们在平台方面也遇到了新的挑战,包括那些影响我们数据存储吞吐量和可靠性的挑战。


基于他们使用 Pinlater 的经历,团队意识到他们不可能在现有架构中解决所有已知的问题,于是他们决定构建下一代平台。


新的架构 Pacer 包含了一个无状态的Thrift API 服务(与 Pinlater 兼容)、一个数据存储(MySQL)、一个有状态的脱队列代理服务(Dequeue Broker),以及在Kubernetes上运行的作业执行 Worker 池。Apache Helix(带有Zookeeper)被用来将作业队列分区分配给脱队列代理。



Pacer 架构(来源:Pinterest工程博客


脱队列代理是一种有状态服务,负责从数据存储中预取作业队列数据并将其缓存到内存中,以减少延迟和隔离入队列和脱队列的工作负载。每个脱队列代理分配到一组作业队列分区,因此可以独占获取和执行作业,从而避免出现争用的情况。Kubernetes 为每个作业队列提供了一个专用的 Pod 池,消除因不同作业类型对资源倾斜消耗所带来的影响。


新的脱队列和执行模型缓解了 Pinlater 所遭遇的问题,包括在从热点分区获取数据时避免扫描所有分区或减少锁的争用。此外,它支持按照排队顺序(FIFO)的方式执行作业,前提是为作业队列配置单独的分区。


新的架构需要给脱队列代理实例进行独占式队列分区分配,与Kafka

消费者主题分区分配类似。Pinterest 的团队选择使用 Apache Helix 来实现这个功能。Apache Helix 提供了一个通用的集群管理框架,用于给集群内的脱队列代理进行分区分配。Helix 使用 Apache Zookeeper 实现嵌在脱队列代理实例中的 Helix 控制器和 Helix 代理之间的资源配置通信。



用 Apache Helix 和 Zookeeper 协调脱队列代理(来源:Pinterest工程博客


Helix 控制监控加入和离开集群的脱队列代理实例,以及对已配置的作业队列做出的任何变更,如果发生变更,它将重新计算理想的队列分区与代理分布。在最新的分区分配被保存到 Zookeeper 之后,各个代理实例就会更新它们的内部状态,并从它们负责的队列分区中获取数据。


查看英文原文https://www.infoq.com/news/2023/08/pinterest-pacer-kubernetes/

2023-09-12 16:304037

评论

发布
暂无评论
发现更多内容

阿里云中间件首席架构师李小平:企业为什么需要云原生?

阿里巴巴中间件

WWDC21 给开发者最重要的7条新信息

阿里巴巴大淘宝技术

开发者 WWDC21

互联网推送服务原理

hasWhere

WebRTC 传输安全机制第二话:深入显出 SRTP 协议

阿里云CloudImagine

音视频 WebRTC 通信 流媒体开发 SRS流媒体服务器

第六课作业

杰语

专科小伙豪取三杀,斩获阿里、京东和蚂蚁Java岗offer的原因找到了!

北游学Java

Java 面试

WebRTC学习—WebRTC详解

Linux服务器开发

音视频 WebRTC ffmpeg SRS流媒体服务器

深入浅出 LVS 负载均衡(三)实操 NAT、DR 模型

UCloud技术

BoCloud博云稳居中国容器软件市场份额TOP 5

BoCloud博云

容器

Flink User-Defined Source

Alex🐒

flink 翻译 Flink扩展 flink1.13

网易有道开源EMLL:高性能端侧机器学习计算库,大幅提高计算性能

有道技术团队

人工智能 机器学习 高性能计算 端侧AI

终端架构深研,CodeDay 成都站等你

蚂蚁集团移动开发平台 mPaaS

flutter mPaaS Codeday Meetup

16倍效率提升体验,博睿数据APM成企业运维超级加速器

博睿数据

APM 博睿数据 数据链DNA

《转》HttpURLConnection自动重试机制

hasWhere

移动开发iOS,薪资如何?待遇怎样!

ios开发 iOS 知识体系

2021年版,拼多多/阿里/今日头条/京东 Java面经大合集(含答案)

Java架构师迁哥

关于Redis分布式锁的那些事

Hex

redis 后端

数据库设计的 10 个最佳实践

xcbeyond

数据库 数据库设计 6月日更

百度智能云NIRO MAX机器人,打造智慧党建新体验!

百度大脑

人工智能 百度 机器人

C#开发之基于NPOI的操作Excel开发体验

吴脑的键客

C# Excel

一体化、标准化、可视化数据平台,博睿数据领跑智能运维新典范

博睿数据

博睿数据 数据链DNA dataview

在线图片坐标拾取工具

入门小站

必须加强对电商促销节的监管:保障普通消费者合法权益

石头IT视角

阿里云边缘容器服务ACK@Edge 通过33项测评,拿到“2021云边协同能力认证”

阿里巴巴中间件

2021年5月云主机性能评测报告出炉,华为云跃居榜首

博睿数据

云主机 博睿数据 博睿指数

细细阅读,3张图带你理解,零拷贝,mmap和sendFile

奔着腾讯去

c++ Linux Mmap C++后台开发 网络io

星环科技TDH8.0使用必读2: 10种数据模型全支持 未来属于多模型大数据平台

星环科技

大数据 边缘计算 知识图谱 数据管理平台 多模型数据

搭建Prometheus+Grafana的云平台监控系统

学神来啦

云计算 Linux 运维 开发日志

80后自立门户,90后异军突起,中国投资新势力加速崛起 | 创业邦2021年40位40岁以下投资人重磅发布

创业邦

创业

iOS开发21年6月面试总结(未完待续~)

iOSer

ios 面试 ios开发 iOS 知识体系

🌏【架构师指南】分布式技术知识点总结(下)

码界西柚

分布式 架构设计 6月日更

Pinterest使用Kubernetes和Helix构建下一代异步计算平台Pacer_云原生_Rafal Gancarz_InfoQ精选文章