系统架构

1 常见的系统架构设计模式

1、单库单应用模式(单体架构)

最简单的系统,把系统中所有的功能、模块耦合在一个应用中的架构方式。一个数据库,一个业务处理层,一个后台管理系统

单体架构特点:打包成一个独立的单元(导成一个唯一的jar包或者是war包),会一个进程的方式来运行。

优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。

缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境

2、MVC架构

MVC是模型(Model)、视图(View)、控制器(Controller)3个单词的缩写 。

Model是指数据模型,是对客观事物的抽象 ,包括属性和方法

View是指视图,也就是呈现给用户的一个界面,是model的具体表现形式,也是收集用户输入的地方

Contorller指的是控制器,主要负责与model和view打交道,是MVC中沟通的桥梁。

优点:有利于开发的分工,有利于组件的重用

缺点:增加了系统结构和实现的复杂性。视图与控制器间的过于紧密的连接。视图对模型数据的低效率访问

3、面向服务架构(SOA)(分布式)

面向服务的架构(SOA)是一个组件模型,它将应用程序拆分成不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。不同服务调用接口就使用到rpc远程调用。

面向服务架构特点:系统是由多个服务构成,每个服务可以单独独立部署,每个服务之间是松耦合的。服务内部是高内聚的,外部是低耦合的。高内聚就是每个服务只关注完成一个功能。

优点: 测试容易,可伸缩性强,可靠性强,跨语言程度会更加灵活,团队协作容易,系统迭代容易

缺点: 运维成本过高,部署数量较多,接口兼容多版本,分布式系统的复杂性,分布式事务

4、微服务架构

微服务和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成 。 只是 SOA 着重中央管理,而微服务是着重分散管理。 部署一般使用docker作为容器

原文地址:https://www.cnblogs.com/yjh1995/p/12578353.html