写点什么

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

评论

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

2023年企业降低云支出的小方法汇总

行云管家

云计算 云资源 云成本 云支出

【安全运维】免费运维软件有哪些?哪款好用一点?

行云管家

运维 安全运维 免费 小微企业

JVM调优实战:优化Java应用程序的性能

Java JVM 性能调优

系统梳理面试6大专题,阿里爆款Java面试速成笔记也太香了

Java java面试 Java八股文 Java面试题 Java面试八股文

GitHub标星30k!基于Spring MVC Mybatis分布式开发系统-zheng项目(内附源码)

Java你猿哥

开源 架构设计 分布式架构 JavaEE zheng

SpringBoot限制接口访问频率 - 这些错误千万不能犯

Java spring Spring Boot 框架

硬核!互联网资深大佬手码高并发编程速成笔记(2023版)限时开源

Java 并发编程 高并发

面试官:你能和我说一下 CMS 垃圾回收器吗?

Java你猿哥

算法 CMS JVM 垃圾回收器 垃圾收集器

区块链DAPP互助逻辑模式系统开发技术方案

I8O28578624

阿里、字节等大佬神创,必须是全网最全的Netty核心原理手册

Java你猿哥

Java 源码 Netty ssm netty内存管理

优秀!阿里甩出GC面试小册,仅7天Github获赞96.9K

Java JVM 垃圾回收 GC

刷爆LeetCode!字节技术官亲码算法面试进阶神技太香了

Java 数据结构 算法 LeetCode

进阶面试皆宜!阿里强推Java程序员进阶笔记,差距不止一点点

Java java面试 Java八股文 Java面试题 Java面试八股文

【全网首发】华秋CAM:免费Gerber查看器,离线版!

华秋电子

在行 | 唱响钢铁冶金行业绿色发展进行曲

用友BIP

深化企业数据智能应用 用友敢当“急先锋”

用友BIP

2023用友BIP技术大会

聊聊 万亿流量场景下的负载均衡实践

Java你猿哥

负载均衡 ssm 高并发 DNS 负载均衡架构

真香!阿里最新产出分布式进阶实战手册,涵盖分布式架构所有操作

Java你猿哥

架构 微服务架构 Spring Cloud Spring Boot ssm

DAPP合约拆分公排模式项目系统开发技术讲解

I8O28578624

【活动预告】数据集成引擎BitSail遇上CDC

字节跳动数据平台

数据集成平台 bitsail

面试官:Spring Boot 的启动流程你了解吗?我:。。

Java你猿哥

Java spring Spring Boot ssm main

直击面试!阿里技术官手码12W字面试小册在Github上爆火

Java java面试 Java八股文 Java面试题 Java面试八股文

系统梳理面试6大专题,阿里爆款Java面试速成笔记也太香了

Java你猿哥

Java MySQL redis MQ java面试

共享电单车生产厂家排名!怎么选?

共享电单车厂家

共享电动车厂家 共享电单车生产 本铯共享电动车 共享电单车厂家排名

IPQ8072 or IPQ8072A with the QCN9074/9024 chipset / well-suited for high-end routers.

Cindy-wallys

IPQ8072

阿里开源SpringBoot全栈小册!Github已标星百万

Java spring Spring Boot 框架

3F聆听

郭明

Wallys miniPCIe wlan modules/ QCA9880 /2.4G&5G

Cindy-wallys

QCA9880

学会这招,来给你的 SpringBoot 工程部署的 jar 包瘦瘦身吧!

Java你猿哥

Java jar Spring Boot ssm

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