最近在看李智慧的《大型网站技术架构》,简单记录一下系统设计的五要素和一些解决方案。
五要素包括:

  1. 性能
  2. 可用性
  3. 扩展性
  4. 伸缩性
  5. 安全性

1. 性能

性能其实可以分为用户眼里的性能和工程师眼里的性能,用户眼里的性能是广义上的性能:从点击到响应的所有时间,一切影响因素的综合;而工程师关注的性能主要是比较狭义,单指网站架构性能这一块,暂时忽略了例如网络波动、设备性能等因素。
描述计算机处理需求能力的指标,一般包括以下方面:

  1. 响应时间
  2. 吞吐量/吞吐率
  3. 并发用户数

可考虑的提高性能的方法:

  1. 缓存

    本地缓存+缓存服务器

  2. 集群

    使用负载均衡+多台服务器提供服务

  3. 异步

    减少IO等待事件,提高CPU利用率进而提高吞吐量

  4. 动静分离

    其实也是缓存的一种

2. 可用性

即网站的可用(可正常提供服务)时间,一般要求达到四个9以上(99.99%)。

常见提高可用性的手段有:

  1. 冗余

    单节点服务器结构变为集群结构。

  2. 监控报警

    有问题及时上报,快速处理排查隐患。

  3. 服务降级

    保障最基础的功能可用。

3. 扩展性

不同于伸缩性关注集群的服务器增加的影响,扩展性关注的是网站架构在支持新业务开发方面的性能指标,即网站是否可以快速响应需求变化及时修改/增加新业务。

其主要标准在于在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,只需要很少改动甚至不需要改动既有业务功能就可以上线新产品。

主要手段:

  1. 事件驱动架构

    通过消息队列实现,将用户请求和其它业务事件构造成消息发布到消息队列,消息的处理者作为消费者从消息队列中获取消息进行处理。

  2. 分布式服务

    将业务和可复用服务分离,通过分布式服务框架调用。(类似于中间件服务与顶层业务服务)

4. 伸缩性

伸缩性——指可以通过不断向集群中加入服务器的手段来缓解用户访问压力和数据增长需求,具体分为以下两个指标:

  1. 是否可以用多台服务器构建集群;
  2. 是否容易向集群中添加新的服务器;
  3. 加入后是否可以提供和原来的服务器无差别的服务;
  4. 集群中可容纳的服务器数量是否有限制。

根据不同功能的集群,会有不同的原则添加服务器。

5. 安全性

安全性一般体现为:

  1. 可抵御外界的恶意攻击和恶意访问;
  2. 保护用户数据安全。

具体表现为针对现存和潜在的各种攻击和窃密手段,是否有可靠的应对策略。

系统(架构)设计五要素相关推荐

  1. 基于BPMN2.0的工单系统架构设计(下)

    版权声明: 本文为博主原创文章,未经博主允许不得转载.关注公众号技术汇(ID: jishuhui_2015) 可联系到作者. 在上两篇文章中,介绍了BPMN2.0和工作流定义语言(以下简称WDL),以 ...

  2. 产品设计-产品设计五要素

    概念介绍 产品设计五要素分别是:战略层.范围层.结构层.框架层.表现层.自上而下的分析可用来分析已有的产品,自下而上分析则可以用来创造新的产品.下面是各个层级所包括的内容: 战略层:产品目标和用户需求 ...

  3. petshop4.0 具体解释之中的一个(系统架构设计)

    前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有很多.Net与J2EE之争,很多数据是从微软的PetShop和Sun的PetStore而来.这样的争论不可避免带有浓厚的 ...

  4. petshop4.0 详解之一(系统架构设计)

    前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来.这种争论不可避免带有浓厚的商 ...

  5. PetShop的系统架构设计[转]

    <解剖PetShop>系列之一 前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的Pet ...

  6. [转]PetShop的系统架构设计

    <解剖PetShop>系列之一 前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的Pet ...

  7. 系统架构设计的工程与艺术(0)

    对于系统架构设计,我现在是功力不够,境界还凑合,俗称眼高手低是也.功力不够只能一点一点地练,一点一点的涨了,还不知道什么时候能有所小成.不过有境界也算是一件好事情,所以这个系列会先聊一聊境界方面. 之 ...

  8. petshop详解之一:PetShop的系统架构设计

    前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来.这种争论不可避免带有浓厚的商 ...

  9. petshop4.0 详解之一(系统架构设计)(转载)

    前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来.这种争论不可避免带有浓厚的商 ...

  10. 《系统架构设计》-01-架构和架构师概述

    文章目录 1. 架构的基本定义 1.1 架构组成理论 1.1.1 系统元素 1)概念 2)静态结构和动态结构 1.1.2 基本系统属性 1.1.3 设计和发展原则 1.2 架构的决策理论 1.2.1 ...

最新文章

  1. 一分钟AI | 特斯拉发布电动卡车,扫地机器人被曝窥探个人隐私
  2. 一文打尽目标检测NMS | 精度提升篇
  3. 梯度下降原理及线性回归代码实现(python/java/c++)
  4. HashMap 与 Hashtable 的区别
  5. Android Wifi开发之WifiConfiguration
  6. python替代_【Python】选择ipython替代python的理由
  7. cuDNN error: CUDNN_STATUS_EXECUTION_FAILED
  8. 第55课 分解质因数 《小学生C++编程入门》
  9. tomcat性能调优和性能监控(visualvm)
  10. python json文件太大_python - python json.dump创建的文件太大 - 堆栈内存溢出
  11. (转) Playing FPS games with deep reinforcement learning
  12. Android 将自己的应用改为系统应用
  13. arcgis10.3添加工具
  14. python getcwd_Python3 os.getcwd() 方法
  15. 数据结构(三)---树
  16. 杰理-手表-AC701-watch-添加表盘
  17. 嫌微信公众号排版太丑?这里让你一步到位
  18. 第10课:生活中的迭代模式——下一个就是你了
  19. 基于校园场景的NBIOT智能门锁管理方案
  20. 51单片机 | 并行I/O口扩展实例(74LS244/74LS373/4071)

热门文章

  1. 网站升级改版服务器,网站程序升级改版 让网站无损失过渡
  2. “过气网红”准备复出? 诺基亚新机或将接入鸿蒙系统
  3. 导航电子地图制作资质的办理指南
  4. 设置NTFS磁盘文件夹的可写权限(转自:http://doc.spacebuilder.cn/Default.aspx?Page=setNTFSAspxAutoDetectCookieSuppor)
  5. HP CQ40安装XP详细步骤(刷BIOS)
  6. 别说告诉我你懂PPT--学习笔记
  7. oa传文件传不了服务器未响应,oa添加附件没反应
  8. 计蒜之道初赛第一场-阿里的新游戏
  9. 【智能车新手入门】-赛车行驶策略
  10. 假如编程是魔法之零基础看得懂的Python入门教程