SpringCloud(三)常用系统架构技术讲解

author:QYX 

以前我们使用过单体架构,把多个系统放到一个容器中集体调用,这种模式开发简单,适合小型应用但不利于扩展且代码耦合,后来我们引入和垂直应用架构,系统间相互独立,通过前端统一调用,虽然解决了高并发的问题,也可以针对水平扩展,但也存在着系统间相互独立,且重复开发的缺点,现在我们就来认识最常用的架构模式:分布式架构和微服务架构。

分布式架构

SOA(面向服务的架构)

SOA全称为Service-Oriented Architecture,即面向服务的架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合和使用,一个服务通常以独立的形式存在与操作系统进程中。

站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生,目的:把原先固有的业务功能转变为通用的业务服务,实习业务逻辑的快速复用

通过上面的描述可以发现SOA有如下几个特点、分布式、可重用、扩展灵活、松耦合

SOA架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求

SOA

优点:

抽取公共的功能为服务,提高开发效率

对不同的服务进行集群化部署解决系统压力

基于ESB/DUBBO减少系统耦合

缺点:

抽取的服务粒度较大

服务提供方与调用接口耦合度较高

                                            SOA架构示意图

微服务架构

优点:

通过服务的原子化拆分(拆到不可再拆了),以及微服务的独立打包,部署和升级,小团队的交付周期将缩短,运维成本也将大幅度下降

微服务遵循单一原则,微服务之间采用Restful等轻量协议传输

缺点:

微服务过多,服务治理成本高,不利于系统维护

分布式系统开发的技术成本高(容错、分布式事务等)

系统架构分析之远程调用技术

流行的调用技术:RPChttp

分布式中的CAP原理

C 一致性(多节点下数据一致) A 可用性(保持服务可以用:多节点) P 分区容错性(是否可以将数据存到多个地方)

一个系统中不可能同时满足C、A、P

一般就是ac放弃分区容错(物理数据库) ap可以短暂允许数据的不一致(NoSQL数据库的选择,互联网中用的较多) cp 放弃可用性()

原文地址:https://www.cnblogs.com/qyx66/p/12229944.html

时间: 2024-11-02 16:04:28

SpringCloud(三)常用系统架构技术讲解的相关文章

大型网站系统架构技术原理透析

跟朋友聊天的时候,发现很多人对大型网站系统架构非常感兴趣,我也很感兴趣,经常会在家里2台笔记本和1台服务器组成的局域网环境里作些实验.我进 入IT行业的时间,大约是97,98年吧,那时候PC客户端软件最为盛行,做软件开发是一份很体面也很喜欢的工作.我从Win3.1上的VC1.5开始一 直到VC6.0,然后转为.Net开发,基本上都是从事客户端软件开发.本人的性格是危机意识向来严重,所以深感互联网必将盛行,传统软件必将走向没落, 于是转向了WEB开发.记得以前去某Portal网站应聘的时候,主考官

架构的力量!!2016解密互联网公司架构技术

大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破.在大型互联网的架构实践中,无一不体现这种思想. 架构目标 低成本:任何公司存在的价值都是为了获取商业利益.在可能的情况下,希望一切都是低成本的. 高性能:网站性能是客观的指标,可以具体体现到响应时间.吞吐量等技术指标.系统的响应延迟,指系统完成某一功能需要使用的时间:系统的吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量:系统的并发能力,

系统架构师秘籍(三)架构视角和关注点

上次的博文中,我们介绍了一下软件架构的基本概念,接下来我们介绍一下如何来架构一个软件系统. 当我们开始进行系统架构设计的时候,通常会考虑以下几点: 所设计的软件体系结构的主要功能要素是什么. 如何将这些要素与其他系统关联. 哪些信息需要存储.管理和展示. 要实现这些功能要素需要什么硬件和软件. 所设计的软件体系结构提供什么样的特性和能力. 开发.测试.支持.培训环境都需要做什么. 考虑上述问题的时候,我们从哪些层面来考虑呢?那就是架构视角和关注点两个层面. 架构视角 架构视角是从一个或多个角度对

阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.maven+spring+springmvc+mybatis:最后再选择一个数据库管理系统来存储数据,如mysql.sqlserver.oracle,然后通过JDBC进行数据库的连接和操作. 把以上的所有软件都装载同一台机器上,应用跑起来

ios系统架构及常用框架

1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media layer).核心服务层(Core Services layer).核心操作系统层(Core OS layer)如图: (1) 触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作.它包括以下这些组件: Multi-Touch Event

查看Linux系统架构类型的5条常用命令

导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎可以通吃所有 Linux 发行版,例如:RHEL.CentOS.Fedora.Scientific Linux.Debian.Ubuntu.Linux Mint.OpenSUSE 等等. 1. uname 命令 uname -a 命令可以直接显示 Linux 系统架构的命令,安几乎可以工作在所有 L

iOS 系统架构 && 常用 framework

整理自互联网,感谢原文作者! 1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media layer).核心服务层(Core Services layer).核心操作系统层(Core OS layer)如图: (1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作.它包括以下这些组件: Mul

三种Dataase Mapping的系统架构

ORM - O/R M - Object/Relational Mapping: A technique/idea used to map objects and thier individual relations to an relational database(mysql, postgresql, mssql, oracle, db2, pretty much any major db today) DAO - Data Access Object: An object used as

iOS 系统架构及常用框架(iOS的系统架构分为四个层次)

1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media layer).核心服务层(Core Services layer).核心操作系统层(Core OS layer)如图: (1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作.它包括以下这些组件: Multi-Touch Events