ruby-on-rails - 中间件对 Twitter 和 Scala 意味着什么?

标签 ruby-on-rails ruby architecture scala twitter

引用 another SO question我有,我得到了this article关于 Twitter 从 Rails 迁移到 Scala,文章中是这样的评论:

By the end of this year, Payne said, Twitter hopes to have its entire middleware infrastructure and its APIs ported to the new language. Ruby will remain, but only on the front end. "We're still happy with Rails for building user facing features... performance-wise, it's fine for people clicking around web pages. It's the heavy lifting, asynchronous processing type of stuff that we've moved away from."

这里的中间件是什么意思?在前端使用 Ruby 到底意味着什么?这是否意味着前端的 rails 只使用了很少的 ORM?它如何与 Scala“相遇”?这个评论是什么意思?

只是想了解架构。谢谢。

最佳答案

它是 N-Tier Architecture 的一种形式.最初,大多数站点将以 2 层架构开始,具有网络服务器和数据库。网络服务器将提供用户看到的页面,而数据库则由这些动态页面访问。

当一个架构被分成多层时,通常,你会在前面有一个 Web 应用程序,以及 Web 应用程序将调用的某种应用程序服务器。该应用程序服务器包含业务逻辑并使应用程序正常运行。应用程序的“外观”只是让事物看起来漂亮,并对其进行格式化以显示给用户。

应用程序服务器或“中间件”只是一组可由网络服务器调用的函数。对于像 Twitter 这样的网站来说,中间件必须功能强大,因为大多数事件都在发送消息,而访问该网站的人并没有那么多事件。

层之间的互连可能是一种标准的 Web 服务技术,但它也可能是一种自定义的东西,可能是 REST 或某种其他类型的 Web 服务,Web 应用程序 (Ruby on Rails) 可以在其中访问应用程序数据。

在这种类型的架构中,Rails 无疑已将所有 ORM 和数据管理委托(delegate)给中间件。

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

我们的想法是能够通过添加硬件向上扩展,其中您可以拥有一个服务器集群来提供网页,另一个集群处理消息传递,然后是一个支持所有这些的数据库服务器集群。这不是一门精确的科学,每个架构都不同,但一般来说,这是可以想到的。

关于ruby-on-rails - 中间件对 Twitter 和 Scala 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945386/

相关文章:

ruby-on-rails - private_pub gem rails 和 https 错误

mysql - 如何用原始MySQL重写 "includes"命令?

ruby-on-rails - 将友好 ID 和 i18n 与 update_attributes 一起使用会导致覆盖

architecture - 库和应用程序代码之间的区别?

architecture - 简单应用的复杂架构

architecture - 您如何开始软件架构讨论?

ruby-on-rails - 使用 Puma 的 SSL、HTTP 解析错误、格式错误的请求

ruby-on-rails - 参数错误 : The scope body needs to be callable

ruby - 无法运行用 ocra 制作的 exes -- fatal error : Failed to create process

ruby-on-rails - 我可以使用 Ruby on Rails 构建网站的一部分吗?