BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 谢丽 关注 11 他的粉丝 发布于 2015年11月25日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

近日,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好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT