参考其他SO质疑我,我得到了这条关于Twitter从Rails的移动到Scala和在文章中是这样的评论:
Payne表示,到今年年底,Twitter希望将其整个中间件基础设施及其API移植到新语言中.Ruby将保留,但仅限于前端."我们仍然对Rails构建面向用户的功能感到满意......性能方面,对于点击网页的用户来说这很好.这是我们已经摆脱的繁重,异步处理类型的东西."
中间件在这里意味着什么?Ruby在前端到底意味着什么?这是否意味着前端的轨道使用的ORM非常少?它如何与scala"见面"?这个评论意味着什么?
只是想了解架构.谢谢.
它是N层架构的一种形式.最初,大多数站点将以2层架构开始,具有Web服务器和数据库.Web服务器将提供用户看到的页面,而数据库则由这些动态页面访问.
当一个体系结构被分成多个层时,通常,您将在前面有一个Web应用程序,其中包含Web应用程序将调用的某种应用程序服务器.此应用程序服务器包含业务逻辑并使应用程序正常运行.应用程序的"面孔"简单地使事物看起来很漂亮,并将其格式化以便向用户显示.
应用程序服务器或"中间件"只是Web服务器可以调用的函数集合.对于像twitter这样的网站来说,中间件必须是强大的,其中大多数活动都是在发送消息,并且访问网站的人没有那么多活动.
层之间的互连可能是标准的Web服务技术,但它可能是一个自定义的东西,可能是REST或Web应用程序(Ruby on Rails)可以访问应用程序数据的其他类型的Web服务.
在这种类型的体系结构中,Rails肯定已将所有ORM和数据管理降级为中间件.
中间件也是一个模糊的术语,可以包含许多层,因此他们称之为N-Tier.我敢打赌,Twitter的中间件不同部分用于消息传递,而另一部分用于管理帐户,提取消息等.
我们的想法是通过添加硬件来扩展,在这里您可以拥有一个服务于网页的服务器集群,另一个集群处理消息传递,然后是支持所有服务器的数据库服务器集群.这不是一门精确的科学,每种架构都不同,但一般来说,这就是它的思考方式.