首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中间件对Twitter和Scala意味着什么?

中间件对Twitter和Scala意味着什么?
EN

Stack Overflow用户
提问于 2009-06-03 15:21:58
回答 4查看 1.3K关注 0票数 4

参考另一个这样的问题,我得到了这篇文章关于Twitter从Rails迁移到Scala的消息,在本文中是这样的评论:

佩恩说,到今年年底,Twitter希望将其整个中间件基础设施和API移植到新语言中。Ruby将保留下来,但只在前端。“我们仍然乐于使用Rails来构建面向用户的功能.性能方面,对于点击网页的人来说,这是很好的。这是一种繁重的、异步处理的东西,我们已经远离它了。”

中间件在这里意味着什么?在前端有Ruby到底意味着什么?这是否意味着前端的rails很少使用ORM?它是如何与scala“相遇”的?这句话是什么意思?

只是想了解一下建筑。谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-03 15:32:13

它是N层体系结构的一种形式。最初,大多数站点将从2层体系结构开始,有一个and服务器和一个数据库。will服务器将服务于用户看到的页面,而数据库则由这些动态页面访问。

通常,当一个体系结构被分成多个层时,您将在前面拥有一个Web应用程序,其中包含web应用程序将调用的某种应用服务器。此应用程序服务器包含业务逻辑,并使应用程序具有功能。应用程序的"face“只会使事情看起来很漂亮,并将其格式化以供用户显示。

应用服务器或“中间件”只是web服务器可以调用的功能的集合。对于像twitter这样的网站来说,中间件必须是强大的,因为twitter的大部分活动都是在发送消息,而且访问网站的人没有那么多的活动。

层间的互连可能是一种标准的web服务技术,但它可能是一种定制的东西,可能是一种REST或其他类型的web服务,web应用程序( Rails)可以访问应用程序数据。

在这种体系结构中,Rails无疑将所有ORM和数据管理降至中间件。

中间件也是一个模糊的术语,可以由多个层组成,因此他们称它为N层。我敢打赌,Twitter中间件中有一个不同的部分专门用于消息传递,而另一部分则负责管理帐户、获取消息等。

这样做的目的是通过添加硬件来向上扩展,在这里,您可以拥有一个服务器集群来服务web页面,另一个集群处理消息传递,然后是一个支持所有这些信息的数据库服务器集群。这并不是一门精确的科学,每一种建筑都是不同的,但总的来说,这就是我们所能想到的。

票数 5
EN

Stack Overflow用户

发布于 2009-06-03 15:43:29

试着在谷歌上搜索"ruby twitter scala payne“,你会在这个问题上得到比你可能需要的更多的信息。

我(可能还不完全)的理解是,大部分Twitter的“后端”没有特别好地编码(参见奥比·费尔南德斯的职位,其中挑出了Alex的一些引语)。这似乎至少在一定程度上源于应用程序最初的快速攻击特性,它被事件所超越,随着应用程序的使用开始呈指数级增长,他们正经历着相当大的痛苦。当时有很多人指责Twitter (以及相关的Rails)“没有缩放”。

Twitter在很大程度上依赖于消息排队,我理解这部分内容是用Scala编写的,这可能(没有个人经验)是一种很好的语言选择。

票数 1
EN

Stack Overflow用户

发布于 2009-06-03 22:04:49

我的理解是,他们迁移到Scala的是消息"queue":从Ruby支持的解决方案到带有Scala的分布式消息系统。具有Twitter容量的服务有特殊的需求,他们已经创建了自己的消息解决方案。叫做"Kestrel“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/945386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档