NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:303727

评论

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

阿里内部架构解密:网络+分布式+RPC+消息中间件+微服务

做梦都在改BUG

Java 架构 微服务

selenium源码通读·11 |webdriver/common/touch_actions.py-TouchActions类分析

Python 源码 测试 自动化测试 selenium

去哪儿网异常统计分析实践——Heimdall

Qunar技术沙龙

去哪儿网 Heimdall

图解制品仓库CodeArts Artifact

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

全网更简单的方法,教你一键接入微信公众号,包教包会。包你成功。三包

派大星

ChatGPT

虚拟模块在前端开发中的应用与示例

Lee Chen

JavaScript 前端

Wallys AP controllers devices/IPQ4019 and IPQ4029 chipsets provide centralized management.

Cindy-wallys

IPQ4019 ipq4029

秒验 运营商SDK错误码

MobTech袤博科技

【云管平台】2023年云管平台厂商排行榜

行云管家

云计算 企业上云 云管平台 行云管家

盘“底座”,盘出新生意经

用友BIP

架构师必备!阿里P8耗时6个月手码架构师进阶笔记真的香

Java你猿哥

Java 架构 ssm 架构师

selenium源码通读·13 |webdriver/support分析

Python 源码 测试 自动化测试 selenium

05.01~05.07 NFT 生态热点汇总

NFT Research

NFT NFT\ #Web3

阿里P9耗时28天,总结历年亿级活动高并发系统设计手册

做梦都在改BUG

Java 架构 系统设计 高并发

横空出世!复盘B站面试坑我最深的Java并发:JDK源码剖析

做梦都在改BUG

Java 源码 jdk 高并发

kafka高性能设计之内存池

做梦都在改BUG

Java kafka 系统设计 高性能 内存池

获得清晰、无噪点的图像:Topaz Photo AI 激活电脑版

真大的脸盆

Mac Mac 软件 图像降噪 图像噪点处理

LED显示屏光污染防治指南

Dylan

国际化 人工 LED显示屏

别慌!阿里专家破SpringBoot:入门+基础+进阶+项目

做梦都在改BUG

Java spring Spring Boot 框架

太强了!京东首席架构师深邃洞察:服务化+云原生+微服务

做梦都在改BUG

Java 架构 微服务 云原生

Unity 发布《金融科技类APP用户调研报告》,应用内广告和搜索广告成为获客突破口

Geek_2d6073

Hive SQL on Flink 构建流批一体引擎

Apache Flink

大数据 flink 实时计算

从源码全面解析Java 线程池的来龙去脉

做梦都在改BUG

Java 源码 线程池

selenium源码通读·12 |webdriver/remote分析

Python 源码 测试 自动化测试 selenium

读书笔记丨理解和学习事务,让你更好地融入云原生时代

华为云开发者联盟

云计算 云原生 华为云 华为云开发者联盟 企业号 5 月 PK 榜

开源智慧家居

源字节1号

微信小程序 软件开发

「微服务」这10道Consul面试题值得一看

王中阳Go

golang 微服务 面试题 服务发现 服务注册

AI与全民开发:挑战和机会并存

草料二维码

AI 无代码 全民开发

AI系统伦理道德风险之可信任度验证

陈磊@Criss

AI 伦理道德

昇腾实战丨DVPP媒体数据处理视频解码问题案例

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号 5 月 PK 榜

【web 开发】生活中大家都喜欢搞模板来规范化操作,抽象类却玩不明白-PHP的抽象类(63)

迷彩

模板 抽象类 三周年连更 抽象方法

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