BT

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

Colossus:来自Tumblr的新服务框架

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

一直以来,全球最大的轻博客网站Tumblr面临的最大问题之一是如何随着平台规模的增长恰当地扩展基础设施。微服务是一个前景非常光明的策略。它清晰地划分了功能职责,有助于建立结构良好的基础设施,更容易处理Bug和性能瓶颈。但微服务也面临自己的问题。一是微服务需要易于构建、维护、部署和监控;二是,它需要有非常高的性能和容错能力。Colossus是Tumblr开发的一个用于应对这些挑战的新框架。它用Scala编写,基于NIO和Akka actor框架构建,提供了一个轻量级的I/O框架,用于构建高性能的Scala微服务。它有如下特性

  • 基于事件的编程——Colossus采用了一种基于事件编程的现代化用法,直接基于NIO构建,充分利用了Scala的函数式和面向对象特性。借助它,开发人员可以用最少的样板代码编写出功能强大的应用程序。
  • 与Akka无缝集成——Colossus完全作为Akka actor编写。因此,开发人员很容易使用外部actor连接底层事件处理代码。此外,它还提供了完全基于actor的API。
  • 实时监控指标——Colossus包含一个指标聚合与报表系统,使开发人员很容易实时跟踪事件。像请求速率、延迟这样的常用指标都是内置在服务中,可以开箱即用。而且,开发人员很容易添加自己的指标。
  • 不只可以编写服务——虽然Colossus起初是为开发微服务而构建的,但其核心是对NIO的简单包装,开发人员可以用它编写自定义的服务器和客户端。而且,Colossus Task允许开发人员在事件循环内编写任意代码。

Colossus现在已经成为Tumblr基础设施的一个基础部分,极大地改善了他们构建服务的方式。他们已经将它成功地用在生产环境的数个后台系统中。

目前,该项目已经遵循Apache License在Github上开源。但由于其开发还在进行中,所以版本是pre-1.0。感兴趣的读者可以查看入门指南完整文档示例


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@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