服务器架构设计大全及其优缺点概述

简介: 服务器架构设计大全及其优缺点概述

1、什么是架构?


这里有一篇博客关于【架构和框架的区别】,详述了什么是架构。我认为解释的很到位,不懂的可以看看。

还有一篇讲解的是【架构师的职责是什么】,有兴趣的也可以看一看。


通过以上两片博客可以告诉我们:架构并不是实物,是关于软件如何设计的重要策略。


2、什么是设计模式?


简单理解:模式就是经验 ,设计模式就是设计经验。在特定情况下使用特定设计、组合设计,可以大大节省我们的设计时间,提高工作效率。


总体而言,共有八种,分别是:


1、单库单应用模式:一些小的应用

一个数据库,一个业务应用层,一个后台管理系统。

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

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


2、内容分发模式:目前用的比较多

使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。

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

缺点:目前来说OSS,CDN的价格还是稍微有些贵(虽然已经降价好几次了),只适用于中小规模的应用,另外由于网络传输的延迟、CDN的同步策略等,会有一些一致性、更新慢方面的问题。


3、查询分离模式:对于大并发的查询、业务。


主要解决单机数据库压力过大,从而导致业务缓慢甚至超时,查询响应时间变长的问题,也包括需要 大量数据库服务器计算资源的查询请求。

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

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


4、微服务模式:适用于复杂的业务模式的拆解


业务分块,做了垂直切分,切成一个个独立的系统,每个系统各自衍化,有自己的库、缓存、ES等辅助系统,系统之间的实时交互通过RPC,异步交互通过MQ,通过这种组合,共同完成整个系统功能 。

优点:相对高性能,可扩展性强,高可用,适合于中等以上规模公司架构。

缺点:复杂、度不好把握。指不仅需要一个能在高层把控大方向、大流程、总体技术的人,还需要能够针对各个子系统有针对性的开发。把握不好度或者滥用的话,这个模式适得其反!


5、多级缓存模式:可以把缓存玩的很好


应对超高查询压力的一种普遍采用的策略,在所有链路的地方,能加缓存就加缓存。可以分别在客户端、API网关、具体的后端业务处增加缓存。

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

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


6、分库分表模式:解决单机数据库瓶颈


主要解决单表写入、读取、存储压力过大,从而导致业务缓慢甚至超时,交易失败,容量不够的问题。

优点:减少数据库单表的压力。

缺点:事务保证困难、业务逻辑需要做大量改造。


7、弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一


主要解决 突发流量 的到来,导致无法横向扩展或者横向扩展太慢,进而影响业务,全站崩溃的问题。

优点:弹性、随需计算,充分优化企业计算资源。

缺点:应用要从架构层做到可横向扩展化改造、依赖的底层配套比较多,对技术水平、实力、应用规模要求较高。


8、多机房模式:解决高可用、高性能的一种方法


优点:高可用、高性能、异地多活。

缺点:数据同步、数据一致性、请求路由。


参考链接:

八种架构设计模式及其优缺点概述


相关文章
|
29天前
|
存储 SQL 关系型数据库
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse的核心架构包括执行过程和数据存储两部分。执行过程涉及Parser与Interpreter解析SQL,通过Column、DataType、Block、Functions和Storage模块处理数据。Column是内存中列的表示,Field处理单个值,DataType负责序列化和反序列化,Block是内存中表的子集,Block Streams处理数据流。Storage代表表,使用不同的引擎如StorageMergeTree。数据存储基于分片和副本,1个分片由多个副本组成,每个节点只能拥有1个分片。
161 0
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
|
29天前
|
存储 SQL Java
数据库TiDB-01.数据库架构概述
TiDB兼容MySQL 5.7协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。
372 2
数据库TiDB-01.数据库架构概述
|
29天前
|
存储 安全 Java
SpringCloud整体架构概述
SpringCloud整体架构概述
74 0
|
29天前
|
SQL 存储 分布式计算
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
401 0
|
29天前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
203 0
|
23天前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
27天前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
|
29天前
|
存储 监控 微服务
微服务和单体架构是两种不同的软件架构风格,每种都有其自身的优缺点
【1月更文挑战第1天】微服务和单体架构是两种不同的软件架构风格,每种都有其自身的优缺点
58 0
|
29天前
|
消息中间件 安全 搜索推荐
概述软件架构的定义与分类
【5月更文挑战第8天】软件架构是指导大型软件系统设计的抽象模式集合,旨在简化复杂工程,通过模块化实现系统各方面的分工。
|
29天前
|
传感器 Java Android开发
Android HAL深入探索(1): 架构概述
Android HAL深入探索(1): 架构概述
118 1