常见的系统架构有哪些

常见的系统架构有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

相关推荐

  • mysql中字段和记录有什么区别

    它们的区别主要在于:1、含义不同;2、作用不同;3、实际应用中的角色不同。在MySQL中,一个表是由多个字段(column)组成的,字段是表中的一个列,它代表了数据的某一属性。记录(row)是表中的一行数据,是多个字段值的集合,代表了一组相关的数据。 1、含义不同 字段:在MySQL中,一个表是由多…

    2023年7月12日
    1.3K00
  • 什么是黑盒测试

    黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行的测试。黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。 黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程…

    2023年1月16日
    61700
  • 如何在云原生平台上进行持续集成和持续部署(CI/CD)

    本文主要探讨云原生平台上的持续集成和持续部署(CI/CD)。云原生平台利用容器、微服务、动态调度等技术提供灵活的服务部署及运维手段。主要核心观点可以展开为:1、持续集成,涉及代码合并到共享存储库中的自动化流程;2、持续部署,自动将软件变更部署到生产环境中;3、工作流和自动化测试,提升代码质量与部署频…

    2023年11月23日
    40400
  • MQTT的消息压缩技巧是什么

    在采用MQTT协议进行消息传递时,应用几种消息压缩技巧能够显著减少带宽消耗并提高传输效率。其中包括使用紧凑的数据格式、有效地编码数据、利用数据压缩算法、设定合理的消息发布级别以及合并消息。 其中,紧凑的数据格式显著减少了消息的大小。例如,使用JSON格式代替XML,因为JSON自然较为紧凑。此外,在…

    2024年1月5日
    35300
  • 地产项目如何管理员工人员

    地产项目的员工管理涉及员工选拔与培训、团队建设与激励、项目管理与效率监控、员工福利与职业发展。在这些方面中,尤其突出的是团队建设与激励,因为在地产项目中,团队的凝聚力和积极性直接影响项目的进度和质量。为此,必须制定明确的团队目标、建立有效的沟通机制、实施公平的激励措施,并提供团队建设活动以增强员工之…

    2024年4月10日
    7800
  • 班级管理系统设计

    班级管理系统设计的关键在于创造一个便捷、高效和可扩展的电子平台,以促进学生、教师与管理者间的交流与管理活动。1、高效的学生信息管理;2、作业与成绩跟踪功能;3、通讯与互动工具;4、出勤记录和行为评估;5、报告生成和数据分析;6、权限与安全性设置。在这些必备功能中,高效的学生信息管理是基础,它能够保障…

    2024年1月9日
    36100
  • 如何衡量研发投资的回报

    衡量研发投资回报涉及考量几个关键性指标:1、净现值(NPV)、2、内部收益率(IRR)、3、回报率(ROI)、4、研发弹性、5、专利和知识产权的质量与数量。净现值(NPV)通过预测项目未来现金流的净值量化投资效益。内部收益率(IRR)评估投资获得的平均年回报率。回报率(ROI)用于计算每投入一单位货…

    2023年11月30日
    1.2K00
  • oa是什么牌子

    OA是一个通用性术语,不特指某一品牌,代表办公自动化(Office Automation)。它通常关涉到使用计算机、网络以及软件技术来创建、收集、存储、转换、交换与使用公司内外的办公信息及其流程优化。特别强调的是,数字化是办公自动化的核心,改进并简化了传统办公任务的执行方式。接下来将对办公自动化的内…

    2024年1月11日
    27100
  • 如何应对员工的工作压力和心理健康问题

    员工的工作压力和心理健康问题需要得到适当的关注和解决,以确保员工福利和组织的成功。本文将探讨:1、识别工作压力的迹象和原因,2、提供心理健康支持和资源,3、创建一个积极的工作环境,4、采取灵活的工作安排,5、推动领导层的参与和支持。其中,提供心理健康支持和资源可以为员工提供及时的帮助,减轻他们的压力…

    2023年8月9日
    49800
  • 医院信息化项目如何做管理

    医院信息化项目的管理关键在于规划细致、人员配合、技术选型、数据安全,每一环节都至关重要,但在这众多因素中,规划细致尤为关键。项目的成功不仅取决于技术的高级性或团队的协作,更在于项目启动前的全面而细致的规划。规划不仅包括项目目标的明确,还包括时间线、预算、资源分配、风险评估等全方位的考虑。一个周密的规…

    2024年4月11日
    6000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部