【问题标题】:Horizontal scalability for distributed apps, how to achieve that?分布式应用程序的水平可扩展性,如何实现?
【发布时间】:2011-09-11 01:40:45
【问题描述】:

我想在这里忽略 Web 应用程序,因为要水平扩展它们,即一起使用多个服务器实例,只需在机器上复制服务器软件并使用一种转发请求的路由器就足够了到“不太忙”的服务器机器。

但如果我的服务器应用程序允许用户实时互动呢?

如果对某个客户端 X 的请求的响应取决于客户端 Y 的上下文,该客户端 Y 的连接由另一台机器管理,则需要“机器间”通信。

我想知道人们在这种情况下使用的那种“设计解决方案”。

例如,Facebook 的人在启用其社交应用的聊天功能时肯定已经遇到过这种情况。

提前感谢您的任何建议。

【问题讨论】:

    标签: real-time horizontal-scaling


    【解决方案1】:

    您应该考虑一些提供透明水平数据库可扩展性并保证 ACID 语义的解决方案。有许多解决方案可以在各个级别提供此功能。您引用的 Facebook 人员通过接受最终一致性解决了这个问题,但您的问题让我相信您不能接受最终一致性。

    【讨论】:

      【解决方案2】:

      实现这一目标的一种解决方案是使用分布式缓存,例如memcache(Facebook 也使用这种方法)。 然后所有节点所需的所有信息都存储在该缓存中(如果需要永久保存,则存储在数据库中),因此所有节点都可以访问该信息(节点之间的延迟非常小)。

      问候

      【讨论】:

        猜你喜欢
        • 2017-08-27
        • 2015-05-22
        • 1970-01-01
        • 2012-10-18
        • 2018-08-21
        • 2022-11-21
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多