zoukankan      html  css  js  c++  java
  • N 层体系架构模式-云原生架构设计快速入门

    N 层体系结构将应用程序分成 逻辑层 和 物理层级。

    层是分离职责和管理依赖关系的方式。 每个层都有特定的责任。 较高层可使用较低层中的服务,反之则不行。

    层在物理上是分隔开的,在不同的计算机上运行。 一个层可直接调用另一个层,或使用异步消息传递(消息队列)。 虽然每个层可能托管在自己的层中,但这并不是必需的。 多个层可能托管在同一层上。 在物理上分隔层可以提高可伸缩性和复原能力,但因额外的网络通信也增加了延迟。

    传统的三层应用程序有表示层、中间层和数据库层。 中间层是可选的。 更复杂的应用程序可以多于三层。 上图显示具有两个中间层,且封装了不同功能区域的应用程序。

    N 层应用程序可以有封闭的层体系结构或开放的层体系结构:

    • 在封闭的层体系结构中,层只能调用紧邻的下一层。
    • 在开放的层体系结构中,层可以调用它下面的任何层。

    封闭的层体系结构限制层之间的依赖关系。 但是,如果一个层仅简单地将请求传递到下一层,可能会产生不必要的网络流量。

    何时使用此架构

    目前N 层体系结构基础设施部分选择可以自有机房也可以基于现代云计算服务平台实现,每一层都在独立的 物理机或VM 集中运行。对N 层架构应用程序若选择部署在云端;既可以采用 IaaS基础设施部分,也可以对体系结构的某些部分使用Pass层托管服务,特别是缓存、消息传递和数据存储。

    请考虑将 N 层体系结构用于:

    • 简单的 Web 应用程序。
    • 将本地应用程序迁移到云平台上并进行最小的重构情形。
    • 统一开发本地和云应用程序。

    N 层体系结构在传统的本地应用程序中很常见,因此将现有工作负载迁移到公私云都是相对容易实现。

  • 相关阅读:
    php安装xcache (5.4)
    nginx博客系统(内含nginx图片缩略图处理代码,不错)
    一个mysql开启多个端口
    mysql源码重启
    ecshop支付时减库存方法
    n阶幻方问题
    codeforces 710A King Moves(水)
    关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
    codeforces 701C. They Are Everywhere(尺取法)
    codeforces 701 B. Cells Not Under Attack
  • 原文地址:https://www.cnblogs.com/BlogNetSpace/p/15132090.html
Copyright © 2011-2022 走看看