【问题标题】:N Tier Architecture for web applicationWeb 应用程序的 N 层架构
【发布时间】:2018-08-27 15:21:27
【问题描述】:

我对我的 Web 应用程序的实现有点困惑,希望能得到一些澄清。我已经阅读并了解 N 层架构的基本概念。但是,我还没有遇到提到应用程序的哪一部分在哪里。

我的应用程序的结构是这样的。

前端

Backend

前端通过 REST 与我的后端通信。这是否意味着在 Web 服务器、应用程序服务器、数据库服务器设置中,我的前端应用程序将位于 Web 服务器上,我的后端将位于应用程序服务器上,并且我的数据库服务器通过 ip 从我的后端连接?

这是正确的吗?如果是这样,没有像我这样拆分的应用程序如何适应这种架构?

此外,我还看到过这样的架构,其中一个应用服务器在同一前端为 2 个 Web 服务器提供服务。这就是负载均衡器的用武之地吗?

感谢您阅读本文。

【问题讨论】:

    标签: rest architecture


    【解决方案1】:

    我认为您在问两个相关但独立的问题:N 层架构和每层的水平扩展。

    N 层架构:这基本上将您的整个应用程序拆分为不同的层,并让每一层单独做专门的事情。这些不同的层将通过网络调用或 RPC 相互通信。例如,像亚马逊这样的移动应用程序可能具有数据库层、缓存层、后端层(与数据库层和缓存层通信)、消息层(可以解耦层)、前端层。

    层级之间可以有不同的通信方式。你所描述的只是其中一种方式。其他方式可能是前端层将消息推送到消息队列,而后端层通过从队列中拉出消息并进行处理来异步工作。这取决于应用程序以及应用程序的端到端延迟和实时需求。

    层级扩展:每个层级都可以通过添加多台机器来扩展,并在前面放置一个负载均衡器,将流量分配到层级中的机器上。因此,现在在您的示例中,前端层顶部将有一个负载均衡器,来自您的客户端的所有流量都将通过负载均衡器并最终到达 2 个节点之一。

    【讨论】:

    • 嗨!感谢您回答这个问题。那么这是否意味着我已经在我的应用程序设计中实现了这种 n 层架构,并且我放置这些应用程序的位置将有助于未来的扩展?
    • 缩放取决于您需要缩放的部分。如果您的后端无法与前端很好地扩展,您将独立扩展(在前端添加负载均衡器)
    猜你喜欢
    • 1970-01-01
    • 2015-02-15
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 2016-03-26
    相关资源
    最近更新 更多