9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

PinLater:Pinterest 的异步任务执行系统

  • 2015-11-24
  • 本文字数:780 字

    阅读完需:约 3 分钟

近日,Pinterest宣布开源异步任务执行系统 PinLater 。该系统已经在 Pinterest 的生产环境中应用了两年多,是 Pinterest 最关键的任务系统之一。目前,PinLater 使用了 10 多个位于 Amazon EC2 之上的不同集群,500 多个任务队列每分钟总计要处理超过 600 万个任务。

PinLater 的基本架构如下:

可以看出,PinLater 包含三个组件:

  1. 一个无状态的 Thirft 服务,管理任务提交和调度;
  2. 一个存储后台,存储任务和状态;
  3. 工作进程池,执行任务。

要了解更多架构细节,可以查看 Pinterest 工程师 Raghavendra Prabhu 先前发表的一篇文章

PinLater 主要有如下特性:

  • 可靠的任务执行:显式确认、自动重试、延迟可配置;
  • 任务调度:可以将任务安排到将来的一个特定时间点执行;
  • 速率限制:可以限制系统中特定队列的执行速率;
  • 语言无关:可以使用任何 Thrift 支持的语言编写任务入队程序和任务执行程序;
  • 横向可扩展:服务及存储均是横向可扩展的;
  • 支持多种存储后台:目前针对不同的使用场景支持 MySQL 和 Redis 实现;
  • 可见性:可以通过 Ostrich 查看任务及相应的任务队列,跟踪各种运行时属性。

过去的一年中,Pinterest 对 PinLater 进行了改进,在使用 MySQL 作为存储后台时,其吞吐量提升了 5 倍,单个 i2.2xl MySQL EC2 实例每秒可以执行 2000 多次入队操作。考虑到 MySQL 提供了更高的可靠性,他们计划将所有工作负载移至 MySQL。他们还构建了一个检查点功能和一个故事板,前者用于支持长时间执行的任务和复杂的工作流程,后者用于查看任务状态、调试失败任务等。要了解更多信息,请查看 PinLater 的 GitHub 页面


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2015-11-24 18:002348
用户头像

发布了 1008 篇内容, 共 361.9 次阅读, 收获喜欢 334 次。

关注

评论

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

架构师训练营第 1 期 - 第十二周总结

Todd-Lee

极客大学架构师训练营

第三周设计作业

cc

shell脚本的使用该熟练起来了,你说呢?(篇三)

良知犹存

Shell

生产环境全链路压测建设历程之六 淘宝网2012年双十一的痛

数列科技杨德华

实践出真知!华为Android面试真题解析,附超全教程文档

欢喜学安卓

android 程序员 面试 移动开发

2021数字化投资规划,你做好了吗?

Thoughtworks洞见

架构 业务架构

《前端算法系列》如何让前端代码速度提高60倍

徐小夕

Java 算法 大前端

找到相同链表的点

落朽

Week 12

黄立

【小菜学网络】物理层概述

fasionchan

网络编程 计算机网络 网络协议 TCP/IP 物理层

基于 getty 的分布式事务框架seata-golang 通信模型详解

apache/dubbo-go

dubbo dubbo-go dubbogo seata

第三周学习心得

cc

美团十年架构师精心分享:手写分布式消息中间件RocketMQ笔记

小Q

学习 面试 微服务 MQ 中间件

spring2.5.6+java6升级到spring4+java8了

阿水

Java spring 升级

网易游戏部门Java架构师必看的“完美版”Netty源码笔记

Java架构追梦

Java 学习 源码 架构 Netty

图解MyBatis

田维常

100+大厂应届offer,从7个维度全面分析

程序员小灰

编程 面试 面经 腾讯大厂

OSI七层模型与TCP/IP五层模型

Linux服务器开发

TCP/IP 网络协议栈 底层应用开发 Linux服务器开发 OSI

架构师训练营第 1 期 - 第十二周作业

Todd-Lee

极客大学架构师训练营

TCC Demo 代码实现

Java 分布式事务 Demo TCC

腾讯T3大牛手把手教你!从外包月薪5K到阿里月薪15K,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

TRONex智能合约APP系统软件开发

系统开发

怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段

懒得勤快

版权保护 音乐 音乐制作 编曲

复盘不止复盘,更是个人认知升级加速器?

Alan

复盘 思维 技术人应知的创新思维模型 28天写作

iOS面试高薪,进阶 你会这些呢嘛?

ios swift 面试

Tronex智能合约APP系统开发|Tronex智能合约软件开发

系统开发

学习笔记丨Linux中数据提取相关命令

Liuchengz.

Linux ubuntu #Ubuntu

天下武功,唯“拆”不破之MECE原则一| 技术人应知的创新思维模型 (5)

Alan

职场成长 技术人应知的创新思维模型 组合创新 结构化思维 28天写作

作业-第8周

arcyao

记录一次腾讯c/c++ linux后台开发岗面试经历(面试题含答案)

linux大本营

c++ Linux 腾讯 后台开发 架构师

《架构即未来:现代企业可扩展的Web架构流程和组织》.pdf

田维常

架构

  • 扫码添加小助手
    领取最新资料包
PinLater:Pinterest的异步任务执行系统_语言 & 开发_谢丽_InfoQ精选文章