常见的系统架构有哪些

常见的系统架构有6种:1. 单库单应用架构;2. 内容分发架构;3. 读写分离架构;4. 微服务架构;5. 多级缓存架构;6. 分库分表架构;其中单库单应用架构在系统开发规范雏形初期,很多系统就有使用,相对是最简单的,小企业小系统就会用采用,尤其是做项目的公司;

常见的系统架构有哪些-Worktile社区

1、单库单应用架构

这种架构是最简单,我们在学习阶段,基本都会采取这种模式,除了专门针对各种架构的学习。

这种设计一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用业务层完成的,所有的数据也都是存储在一个数据库中,好一点会由数据库的同步,虽然比较简单,但是还是很实用的。

优点:结构简单、开发速度快、实现简单,用于产品的名列前茅版等有原型验证需求。

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

2、内容分发架构

基本上所有的大型网站都或多或少地采用这种架构,常见的应用场景一般是采用CDN技术把网页、图片、css、js 等这些静态资源分发到离用户最近的服务器。这种模式跟单库单应用的模式多了一个CDN、一个云存储OSS(如阿里云OSS)。

流程一般如下:

1、上传的时候,用户选择本地机器上的一个图片进行上传;

2、程序把这个图片上传到云存储OSS上,并返回该图片的一个URL;

3、程序把这个URL字符串存储在业务数据库中,上传完成;

4、查看的时候,程序从业务数据库得到该图片的URL;

5、程序通过DNS查询到这个URL的图片服务器;

6、智能DNS会解析这个URL,得到于用户最近的服务器(或集群)的地址A;

7、然后把服务器上的图片返回给程序;

8、程序显示该图片,查看完成。

由上可知,这个模式的关键是智能DNS,他能够解析出离用户最近的服务器,运行原理大致是:根据请求者的IP得到请求地点B,然后通过计算或者配置得到与B最近或通讯时间最短的服务器C,然后把C的IP地址返回给请求者。这种模式的优缺点如下:

优点:资源下载快,无需过多的开发与配置,同时也减轻了后端服务器对资源的存储压力,减少带宽的使用。

缺点:目前来说OSS、CDN的加个还是稍微优点贵的,只适用于中小规模的应用,另外由于网络传输延迟、CDN的同步策略等,会有一些一致性、更新慢方面的问题。

3、读写分离架构

这种模式主要解决单机数据库压力过大,从而导致业务缓慢甚至超时,查询影响时间变长的问题,也包括需要大量数据库服务器计算资源的查询请求,这个可以说是单库应用模式的升级版本,也是技术架构迭代演进过程中的必经之路。

这种模式相比较单库应用模式来说,多了几个部分,一个是业务数据库的主从分离,一个是引入ES。

优点:减少数据库的压力,理论上提供无限高的读性能,简介提高业务(写)的性能,专用的查询、索引、全文(分词)解决方案。

缺点:数据延迟,数据一致性的保证。 

4、微服务架构

微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。

微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。

5、多级缓存架构

这种模式是应对超高查询压力的普遍采用的一种策略,基本的思想就是在所有链路的地方,能加缓存就加缓存。

一般在三个地方加入缓存,一个是客户端处,一个是API网关处,一个是具体的后端业务处。

客户端处缓存:这个地方加缓存可以说是效果较好的一个,不会延迟。因为不用经过很长的网络链条去后端业务处获取数据,从而导致加载时间过长,客户流失等损失,虽然有CDN的支持,但是从客户端到CDN还是有网络延迟的,虽然不大,具体的技术依据不同的客户端而定,对于WEB来讲,有浏览器本地的缓存、Cookie、Storage、缓存策略等技术;对于APP来讲,有本地数据库,本地文件,本地内存,进程内缓存支持,以上提到的各种技术有兴趣的同学可以继续开展学习,如果客户端缓存没有命中,那么会去后端业务拿数据,一般来讲,就会有个API网关,在这里加缓存也是非常重要的。

后端业务处理:Redis、Jvm等等。

实践中,要结合具体的实际情况,综合利用各级缓存技术,使得各种请求最大程度的在到达后端业务之前就被解决掉,从而减少后端服务器压力、减少占用带宽、增强用户体验。

优点:抗住大量读请求,减少后端压力。

缺点:数据一致性问题较为突出,容易发生雪崩,即:如果客户端缓存失效、API网关缓存失效,那么所有的大量请求瞬间压向后端业务系统,后果可想而知。

6. 分库分表架构

这种模式主要解决单表写入、读取 、存储压力过大,从而导致业务缓慢甚至超时,交易失败,容量不够的问题。一般有水平切分和垂直切分两种,这里主要介绍水平切分。这个模式也是技术架构迭代演进的必经之路。

文章标题:常见的系统架构有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/30332

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编站长
上一篇 2022年10月12日 下午11:57
下一篇 2022年10月13日 上午12:19

相关推荐

  • 中望cad和autocad有什么区别

    中望CAD和AutoCAD的区别主要体现在:1、开发公司不同;2、价格差异;3、功能特性不同;4、用户群体不同;5、服务和支持不同。总的来说,中望CAD和AutoCAD在开发公司、价格、功能特性、用户群体以及服务和支持等方面都有所不同。 1、开发公司不同 AutoCAD是由美国Autodesk公司开…

    2023年5月22日
    2.0K00
  • 为高音质保驾护航——回声消除篇

    大家好,我是来自网易云信的胡林艳。语音通信,在现在生活已经成为了大家绝大多数的沟通交流的方式,而通话语音的质量也是衡量每个厂商系统好坏的标志之一。在语音通信中,回声一直占据着影响音质的主要地位,它会带来种种影响,比如漏回声,产生杂音,处理人声断续,忽大忽小,丢字,失声等现象中,有一部分就是回声或者工…

    2022年3月16日
    73200
  • 文件处理用什么软件

    文件处理软件有:一、word文档编辑;二、Office文档编辑;三、腾讯文档;四、石墨文档;五、讯飞文档。ord文档编辑这款应用比较适合目前大多数的办公用户,即使是没使用过的用户也可以通过基础入门教程来完成word编辑的学习。 一、word文档编辑 word文档编辑这款应用比较适合目前大多数的办公用…

    2023年4月24日
    12500
  • 办公用什么软件

    办公用的软件有:1、Microsoft Word;2、Google Docs;3、Microsoft Excel;4、Google Sheets;5、Microsoft PowerPoint;6、Google Slides。Microsoft Word是最流行的文字处理软件之一,它提供了丰富的功能,…

    2023年2月28日
    13100
  • tcp udp区别

    TCP(传输控制协议)和UDP(用户数据报协议)都是网络传输的核心协议,主要用于数据的发送和接收。在使用过程中,它们存在五个主要的区别:1.是否可靠;2.是否面向连接;3.传输速率;4.使用场景;5.头部开销。总的来说,TCP提供了可靠的数据传输服务,而UDP则提供了更快的传输速度。 1.是否可靠 …

    2023年5月18日
    13800
  • Fragment add与replace的区别是什么

    Fragment add与replace的区别是什么:1、添加方式不同;2、Fragment生命周期不同;3、界面状态的保存与恢复不同。在Android开发中,Fragment是一种轻量级的Activity,可以作为Activity中的一部分来实现灵活的UI设计和交互。 在Android开发中,Fr…

    2023年5月16日
    37000
  • 数据恢复软件有哪些

    数据恢复软件有:1、嗨格式数据恢复大师;2、360安全卫士;3、Recuva;4、EasyRecovery。嗨格式数据恢复大师是一款强大、界面简洁、操作简单的数据恢复软件。支持恢复误删除硬盘文件、误格式化磁盘、误删除U盘/储存卡数据、误清空回收站文件、以及硬盘分区消失后的硬盘文件。 一、嗨格式数据恢…

    2023年4月30日
    7600
  • 什么是精益管理

    精益管理源自于精益生产(lean production),是衍生自丰田生产方式的一种管理哲学。精益管理就是要求企业以最小资源投入,创造出尽可能多的价值,为顾客提供高质量产品和及时的服务,精益管理的目的就是企业在为顾客提供满意的产品与服务的同时,把浪费降到最低程度。 精益管理源自于精益生产(lean …

    2023年1月17日
    1.5K00
  • 为什么Java坚持多线程不选择协程

    之所以Java坚持多线程不选择协程,是因为虽然协程是非常值得学习的概念,它是多任务编程的未来,但是Java全力推进这个事情的动力并不大。当我们希望引入协程,不外乎是因为节省资源以及轻量,但Java全力推进这个事情的动力并不大。 协程是非常值得学习的概念,它是多任务编程的未来。但是Java全力推进这个…

    2023年1月27日
    31500
  • 产品全生命周期管理的意义是什么

    产品全生命周期管理的意义是:产品全生命周期管理系统是企业信息化的关键技术之一, PLM 可以提高市场竞争力, 也提高产品的质量和竞争力。产品全生命周期管理系统是一个采用了CORBA 和WEB 等技术的应用集成平台和一套支持复杂产品异地协同制造的。 一、什么是产品全生命周期管理 产品全生命周期管理系统…

    2023年4月18日
    48100

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部