常见的系统架构有哪些

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

相关推荐

  • Android开发中用SQLite保存时间最好是存成什么类型

    Android开发中用SQLite保存时间最好是存成integer类型。unix时间是通用的标准表达方法,一般直接存成integer就好了,它只表示一串数字,当初设计保存成秒就是秒,保存成毫秒那就是毫秒。至于保存成datetime,即便是mysql上,一般也不怎么推荐。 Android开发中用SQL…

    2023年5月30日
    35200
  • linux在目录下创建文件

    在Linux系统中在特定目录下创建文件主要涉及以下几个方面:1、使用touch命令创建空文件;2、使用echo或printf命令创建并写入内容;3、使用文本编辑器如vi、nano等创建和编辑文件;4、权限和所有权的考虑。下文将详细介绍这些方法的使用和特点。 1、使用touch命令创建空文件 touc…

    2023年8月17日
    75000
  • 多项目管理的主要方法有哪些

    多项目管理的主要方法有:1、阶段化管理;2、量化管理;3、优化管理。阶段化管理是指,从立项之初直到系统运行维护的全过程。根据工程项目的特点,可将项目管理分为若干个小的阶段。 一、阶段化管理 阶段化管理指的是从立项之初直到系统运行维护的全过程。根据工程项目的特点,我们可将项目管理分为若干个小的阶段。 …

    2023年1月10日
    71500
  • ChatGPT能否有效提升社交媒体互动

    ChatGPT可显著提升社交媒体互动,主要通过以下核心观点实现:1、增强内容质量、2、提高响应速度、3、个性化用户体验、4、自动化社交媒体管理、5、扩展社交媒体分析。ChatGPT借助其强大的自然语言处理能力,能创作引人入胜的内容,对用户评论进行即时回应,根据用户偏好提供定制化互动,管理大量的社交媒…

    2023年12月4日
    22700
  • 研发薪酬体系

    研发薪酬体系是企业用以吸引、激励及留住研发人员的核心机制,它包括基本工资、奖金、股权激励以及福利等多种形式。1、基本工资通常根据个人的能力和市场水平确定,确保研发人员的基本生活质量;2、奖金制度根据项目达成情况或个人绩效支付;3、股权激励专为核心研发人员设定,以增强其对企业的长期承诺;4、福利包括社…

    2024年1月9日
    17400
  • java的操作符有哪些

    java的操作符有以下:1、算数运算符;2、赋值运算符;3、自增自减运算符;4、关系运算符;5、逻辑运算符;6、三元运算符。算术运算符号,就是用来处理四则运算的符号,这是最简单,也最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符号。 1、算数运算符 算术运算符即算术运算符号。是完成基本的算术…

    2022年12月31日
    55700
  • DevOps中的模块化开发原则

    开门见山地阐释模块化开发在DevOps实践中的作用,其核心包括1、降低复杂性、2、加快交付速度、3、提高系统的可维护性和可复用性。模块化开发指的是将系统分解成可以独立开发、测试和部署的小部分。这样,每个部分可以由不同的团队在不同的时间周期内独立工作。提高系统的可维护性和可复用性特别重要,因为它确保了…

    2024年1月4日
    17500
  • 建工oa系统

    标题:建工OA系统的核心作用与实现途径 建工OA办公自动化系统关键于提高公司通信效率、文档管理、工作流程自动化。该系统通过集成邮件交流、会议调度、项目跟踪等功能,确保了信息互通的无缝对接,流程的高效执行。其服务于企业内部沟通优化、管理成本节约,与此同时,强化数据安全与保密性。具体分析显示,系统涵盖例…

    2024年1月12日
    13900
  • 贝壳金服史海峰:经济适用型成长 不苛求上限 不放弃底线

    约访史海峰小有波折,技术圈交际广泛的他推脱说“自己跟大多数人一样,虽然努力成为其中的少数,但没什么鹤立鸡群值得一书的”。 但《科创人》恰恰需要这样一位朋友现身说法,作为以记录科技创业者成长心路、缓解成长焦虑为己任的媒体,尝试寻找并分享不同起点、不同路径的成长模型是应有之义。 技术大道非一,成长之路千…

    2022年3月20日
    67900
  • comcn和com有什么区别

    comcn和com的区别主要体现在:1、地域属性不同;2、目标用户群体不同;3、注册审核标准不同;4、价格与市场接受度不同。两者在拔尖域名的性质和使用上都有所差异。com是全球拔尖域名,没有地域限制,可以被全球任何个人或企业注册使用;而comcn是中国的拔尖域名,虽然不限中国用户,但在大多数情况下,…

    2023年6月5日
    1.1K00

发表回复

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

400-800-1024

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

分享本页
返回顶部