原创转载请注明出处:http://agilestyle.iteye.com/blog/2358824
单块架构
MVC架构将应用在逻辑上分成了三层,但它不是物理上的分层。这也意味着,即便将应用架构分成了所谓的三层,经过开发团队对不同层的代码实现,经过Compile、Package、Deploy后,不考虑负载均衡以及水平扩展的情况,最终还是运行在同一台机器的同一个进程中。对于这种功能集中、代码和数据中心化、一个发布包、部署后运行在同一进程的应用程序,通常称之为单块架构应用。
例如:
典型的单块架构应用,传统的JEE项目所构建的产品或者项目,通常以WAR包或者EAR包存在,当部署这类应用时,通常是将整个一个块作为一个整体,部署到同一个Web容器,如Tomcat或者Jetty中。当这类应用运行起来后,所有的功能也都运行在同一个进程中。
优势
劣势
- 维护成本增加
- 持续交付周期长
- 新人培养周期长
- 技术选型成本高
- 可扩展性差
- 构建全功能团队难
Note:
扩展分为垂直扩展和水平扩展
垂直扩展
如果应用程序的所有功能代码都运行在同一个Server上,会导致应用程序的扩展非常困难,如果扩展要求紧急,那么垂直扩展可能是最容易的(比如投行,证券等金融大鳄公司)
在大多数情况下,如果舍得砸钱上IBM的Server,Oracle的DB或者EMC的存储设备,不用改变一行代码,整个世界都会变得美好。但是,伴随着业务的增加,数据的增加,垂直扩展可能会变得一次比一次吃力,成为也会越来越高。
水平扩展
水平扩展通常的做法是建立一个集群,通过在集群中不断添加新Node,然后借助LB,将用户的请求按照LB算法(轮转法、散列法、最小连接法等)将请求分配到不同的Node上
但是,对于单块架构而言,由于所有程序代码都运行在Server的同一个进程中,会导致应用程序的水平扩展成本非常高。例如:如果应用程序某部分的功能是内存密集型的,需要缓存大量数据,而另外一部分功能是CPU密集型的,需要进行大量的运算,那么每次进行水平扩展,运行该应用的服务器都必须有足够的内存和强劲的CPU来满足需求(当然对大型互联网企业内存和CPU根本不是问题)
因此鉴于每台Server都要提供该应用系统所需要的各种资源,基础设施的整体花费可能非常高。另外,如果某些节点内部存在有状态的服务,比如用户登录信息等,会增加水平扩展的难度
分享到:
相关推荐
Oracle数据库架构概述主要涵盖物理存储结构和逻辑存储结构两大部分,这是理解Oracle数据库运作机制的关键。物理存储结构涉及可以直接通过操作系统访问的文件,包括联机重做日志文件、控制文件、参数文件、口令文件、...
与传统的单块架构相比,微服务架构具有以下几个显著的特点: 1. **高度解耦**:微服务架构的核心优势之一是实现系统的高度解耦。每个微服务都是独立的代码库和部署单元,可以独立开发、测试和部署,不受其他服务的...
#### 一、亚马逊云架构概述 在当前数字化转型的大背景下,亚马逊云科技(Amazon Web Services, AWS)凭借其强大的技术实力与丰富的服务种类,在全球范围内占据了重要的市场份额。本章节将围绕《亚马逊云架构PPT》的...
在SOA技术概述中,我们首先了解了为什么需要引入SOA。需求拉动主要来自于现代企业中频繁的跨组织业务交互和异构系统集成的需求。例如,供应链管理、客户关系管理和企业价值链的协调都需要高效的数据和流程集成。而...
#### 一、Google架构概述 Google作为全球互联网巨头,在技术架构方面有着非常先进的设计理念和技术实践。本文主要介绍Google的核心技术架构,包括Google文件系统(Google File System, GFS)、MapReduce分布式并行...
以上内容概述了系统架构师考试所需掌握的核心知识点,涵盖了系统架构师的定义、职责、技术与管理素质,以及操作系统的基础知识。这些知识对于理解现代信息技术体系结构至关重要,也是成为一名优秀系统架构师所必需的...
一、系统架构概述 系统架构是软件开发过程中的关键阶段,它定义了系统的基本构造块以及它们之间的关系。架构设计师需考虑性能、安全性、可扩展性、可维护性等多个因素,构建出满足业务需求的架构蓝图。 二、架构...
#### 一、概述 在现代信息技术领域,构建高效、稳定且可扩展的平台架构对于企业的数字化转型至关重要。本文将基于给定的“平台架构图-产品架构图”及其描述进行深入解读,旨在帮助读者理解该架构的关键组成部分及其...
#### 一、微服务架构概述 微服务架构是一种设计模式,它提倡将单一应用程序开发为一组小型服务,每个服务实现业务功能的一个小部分,并通过轻量级通信机制相互协作。这种架构模式具有高度模块化的特点,可以独立...
在探讨RELT-A单板FPGA功能概述及下载方式实现之前,首先需要对FPGA(现场可编程门阵列)技术有一个基本的了解。FPGA是一种可以通过编程来配置的数字电路芯片,它具有灵活性高、应用领域广、开发周期短等特点。FPGA...
在某些小型嵌入式系统中,采用单任务架构,通过轮询的方式模拟多任务环境。这种方式适用于资源有限的场景,但在处理复杂任务时效率较低。 #### 单任务程序典型架构 在单任务架构中,程序的执行流程通常是固定的: ...
#### 一、Oracle 高可用架构概述 Oracle 高可用(High Availability, HA)是指通过一系列的技术手段确保 Oracle 数据库在遇到各种故障时能够快速恢复并继续提供服务的能力。这不仅涉及到硬件层面的冗余设计,还包括...
### 一、时序数据库技术概述 时序数据库(Time Series Database, TSDB)是一种专门设计用于处理时间序列数据的数据库系统。这类数据库主要用于存储、查询和管理随时间变化的数据点,如设备监控数据、传感器读数、...
#### 概述 随着计算机硬件技术的不断进步,多核处理器的应用越来越广泛,特别是在嵌入式系统领域。为了充分发挥多核架构的优势,设计一种适合多核架构的微内核操作系统显得尤为重要。微内核操作系统以其在实时性、...
#### 系统架构师概述 - **系统架构师的概念**: - 系统架构师在现代信息系统中扮演着至关重要的角色,其职责范围广泛且深入。架构的核心三要素包括构件、模式、规划。其中,“规划”被认为是构建稳定可靠的系统...
#### 三、Oracle数据库架构概述 ##### 2.1 定义数据库和实例 - **数据库**:Oracle数据库由一系列物理文件组成,用于存储数据和元数据。 - **实例**:每个数据库都有一个或多个实例与之关联,实例是指运行数据库的...
第3章硬件实现描述了GPU硬件的组织结构,包括具有芯片共享内存的一组SIMD(单指令多数据)多处理器的运作方式、执行模型和计算能力。还提到了多设备环境中的协作,以及设备模式切换的技术细节。 第4章应用编程接口...
**PLC概述** PLC,全称为Programmable Logic Controller,中文名为可编程逻辑控制器,是一种数字运算操作的电子系统,专为工业环境应用而设计。PLC在自动化控制领域中扮演着至关重要的角色,它取代了传统的继电器...
### Google架构概述 Google作为全球领先的互联网公司之一,在技术架构方面有着卓越的设计理念和技术实践。本文将基于给定的信息深入探讨Google架构中的几个核心组成部分,包括可信赖的存储机制GFS(Google File ...