目录

  • 1、什么是架构?
  • 2、什么是设计模式?
    • 1、单库单应用模式:一些小的应用
    • 2、内容分发模式:目前用的比较多
    • 3、查询分离模式:对于大并发的查询、业务。
    • 4、微服务模式:适用于复杂的业务模式的拆解
    • 5、多级缓存模式:可以把缓存玩的很好
    • 6、分库分表模式:解决单机数据库瓶颈
    • 7、弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一
    • 8、多机房模式:解决高可用、高性能的一种方法

1、什么是架构?

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

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

2、什么是设计模式?

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

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

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

一个数据库,一个业务应用层,一个后台管理系统。
优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。
缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境。

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

使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。
优点:资源下载快、无需过多的开发与配置,同时也减轻了后端服务器对资源的存储压力,减少带宽的使用。
缺点:目前来说OSS,CDN的价格还是稍微有些贵(虽然已经降价好几次了),只适用于中小规模的应用,另外由于网络传输的延迟、CDN的同步策略等,会有一些一致性、更新慢方面的问题。

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

主要解决单机数据库压力过大,从而导致业务缓慢甚至超时,查询响应时间变长的问题,也包括需要 大量数据库服务器计算资源的查询请求。
优点:减少数据库的压力,理论上提供无限高的读性能,间接提高业务(写)的性能,专用的查询、索引、全文(分词)解决方案。
缺点:数据延迟,数据一致性的保证。

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

业务分块,做了垂直切分,切成一个个独立的系统,每个系统各自衍化,有自己的库、缓存、ES等辅助系统,系统之间的实时交互通过RPC,异步交互通过MQ,通过这种组合,共同完成整个系统功能 。
优点:相对高性能,可扩展性强,高可用,适合于中等以上规模公司架构。
缺点:复杂、度不好把握。指不仅需要一个能在高层把控大方向、大流程、总体技术的人,还需要能够针对各个子系统有针对性的开发。把握不好度或者滥用的话,这个模式适得其反!

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

应对超高查询压力的一种普遍采用的策略,在所有链路的地方,能加缓存就加缓存。可以分别在客户端、API网关、具体的后端业务处增加缓存。
优点:抗住大量读请求,减少后端压力。
缺点:数据一致性问题较突出,容易发生 雪崩 ,即:如果客户端缓存失效、API网关缓存失效,那么所有的大量请求瞬间压向后端业务系统,后果可想而知。

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

主要解决单表写入、读取、存储压力过大,从而导致业务缓慢甚至超时,交易失败,容量不够的问题。
优点:减少数据库单表的压力。
缺点:事务保证困难、业务逻辑需要做大量改造。

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

主要解决 突发流量 的到来,导致无法横向扩展或者横向扩展太慢,进而影响业务,全站崩溃的问题。
优点:弹性、随需计算,充分优化企业计算资源。
缺点:应用要从架构层做到可横向扩展化改造、依赖的底层配套比较多,对技术水平、实力、应用规模要求较高。

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

优点:高可用、高性能、异地多活。
缺点:数据同步、数据一致性、请求路由。

参考链接:
八种架构设计模式及其优缺点概述

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

  1. 游戏服务器架构设计的一些整理

    一.前言 没有最好的架构,只有最适合自身业务的架构. 首先我们应该确定的是大的架构方向:分布式 / 单应用+负载均衡,这两种架构设计直接影响后续的网络层.缓存层.数据层.业务层的设计.笔者这两种架构的 ...

  2. 高性能游戏服务器架构设计,一种高性能大型多人在线角色扮演游戏服务器架构设计.doc...

    一种高性能大型多人在线角色扮演游戏服务器架构设计 一种高性能大型多人在线角色扮演游戏服务器架构设计摘要:大型多人在线角色扮演游戏(Massively Multiplayer Online Role P ...

  3. SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发

    SRS流媒体服务器架构设计及源码分析 1.SRS流媒体服务器架构设计 2.协程-连接之间的关系 3.推流-转发-拉流之间的关系 4.如何手把手调试SRS源码 视频讲解如下,点击观看: SRS流媒体服务 ...

  4. 百万用户级游戏服务器架构设计

    百万用户级游戏服务器架构设计 服务器结构探讨 -- 最简单的结构 所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求.所以,结构本无所谓正确与错误:当然,优秀的结构更有助于系统的 ...

  5. 一种高性能网络游戏服务器架构设计

    网络游戏的结构分为客户端与服务器端,客户端采用2D绘制引擎或者3D绘制引擎绘制游戏世界的实时画面,服务器端则负责响应所有客户端的连接请求和游戏逻辑处理,并控制所有客户端的游戏画面绘制.客户端与服务器通 ...

  6. 细谈八种架构涉及模式及其优缺点概述

    一.什么是架构 我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果,哈哈,我理解,架构就是骨架,如下图所示: 人类的身体的支撑是主要由骨架来承担的,然后是其上面的肌肉.神经.皮肤 ...

  7. linux socket recv函数如何判断收完一包_linux服务器端编程之高性能服务器架构设计总结...

    所谓高性能就是服务器能流畅地处理各个客户端的连接并尽量低延迟地应答客户端的请求:所谓高并发,指的是服务器可以同时支持多的客户端连接,且这些客户端在连接期间内会不断与服务器有数据来往. 这篇文章将从两个 ...

  8. 服务器架构设计文档,架构设计文档

    很多同学问做架构设计,怎么才能写出比较好的文档.其实很简单,都是有套路的,今天刚好借这个机会,和大家分享下一般做架构设计该怎么写文档. 背景 首先介绍下项目背景.基于什么原因需要需求. 如果是新产品, ...

  9. 全球同服 游戏服务器架构设计

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:马剑飞 链接:https://www.zhihu.com/question/31103751/answer/6463111 ...

最新文章

  1. Linux系统开发之路-中
  2. VS2005创建CLR自定义触发器
  3. 【Groovy】Groovy 运算符重载 ( 运算符重载 | 运算符重载对应方法 )
  4. 两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串
  5. pythontkinter控件单选框怎么判断是否被选中_Python GUI编程(Tkinter)Radiobutton单选框控件...
  6. 揭秘!阿里数据中心大幅降低成本的核心技术:混部技术
  7. php cli和fastcgi,php的几种运行模式CLI、CGI、FastCGI、mod_php
  8. 2000年考研英语阅读理解文章四
  9. Spring : @Component注解
  10. 不知道工作组名称怎样加入_黄瓜汁加入适量的蜂蜜功效竟然这么好!不看不知道,一看吓一跳!_人类...
  11. 制作自己的绿色版 FireFox
  12. 龙格库塔(Runge-Kutta)法求四元数微分方程
  13. 兔子是这样吃掉狼和野猪的
  14. 网络访问:从网络访问此计算机属性增加guest组,workgroup无法访问,详细教您workgroup无法访问如何解决...
  15. 解决——zip压缩包解压后的文件全是乱码问题
  16. 51单片机c语言编程函数,单片机C语言教程:C51函数
  17. 泛函分析笔记(十七) 弱偏导数
  18. 安卓测试基础入门——ADB命令
  19. 原来,我连一个URL都写不对…
  20. opengl入门基础-画正方形

热门文章

  1. C语言暴力破解偶然在论坛上看到的一个推理题
  2. python计算题库_python练习题-
  3. 万能密码HTTP基本方法 —— 【WUST-CTF2020】admin
  4. (附源码)计算机毕业设计SSM职业学校招生系统
  5. 微信小程序-欢迎界面
  6. mysql 5.7 安装配置教程(windows 64位)
  7. 2021年原生JS实现韩雪冬轮播图
  8. 物理机(服务器)安装centos7系统,物理机上安装 centos7
  9. 解决虚拟机拼不通物理机的网络问题
  10. 需求的获取:需求调研中的5W+1H定律