架构设计的五个核心要素?( 二 )
(4)衡量网站性能的指标(重要的有响应时间、TPS、系统性能计数器等,通过这些指标以确定系统设计是否达到目标)
- 响应时间 。
- 并发数 。如果暂时没有对应的准确监控,针对不同业务模型,可以有不一样的并发数的预估 。我们的系统进行峰值并发数预估的话,有一种比较粗略的计算方式,即全天请求平均每秒并发数 * 3 。但也需要case by case 。
- 吞吐量 。比较常见的有QPS(每秒查询数)、HPS(每秒http请求数)以及TPS(每秒处理事务数) 。
- 性能计数器 。包括系统负载、线程数、cpu、内存使用情况等 。可以用top、free、cat /proc/cpuinfo等命令来查看 。系统负载的定义为当前被CPU执行的线程数/等待被CPU执行的总线程数 。当其值与逻辑cpu个数相同时是最佳状态,其代表所有的资源都被最大限度地被利用 。但也有人认为当负载为0.7倍逻辑CPU数时最佳 。

文章插图
二、安全性互联网是开放的,任何人在任何地方都可以访问网站 。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取 。
安全的5个要素:机密性、完整性、可用性、可控性和可审查性 。
1、安全系统架构
1)安全服务是指计算机网络提供的安全防护措施,包括认证服务、访问控制、数据机密性服务、数据完整性服务和不可否认服务 。
2)特定的安全机制是用来实施安全服务的机制,包括加密机制、数据签名机制、访问控制机制、数据完整性机制、认证交换机制、流量填充机制、路由控制机制和公证机制 。
3)普遍性的安全机制不是为任何特定的服务而特设的,属于安全管理方面,分为可信功能度、安全标记、事件检测、安全审计跟踪和安全恢复 。
2、安全保护等级
1)用户自主保护级
2)系统审计保护级
3)安全标记保护级
4)结构化保护级
5)访问验证保护级
衡量网站安全架构的标准就是针对现存和潜在的各种攻击和窃密手段,

文章插图
是否有可靠的应对策略 。
三、可用性衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,以及出现各种不可预期的问题时,系统整体是否依然可用 。
一般就三个手段、冗余、集群化、分布式 。
网站高可用的主要手段就是冗余,应用部署在多台服务器上同时提供服务,数据存储在多台服务器上相互备份,任何一台服务器都不会影响应用的整体可以,通常的实现手段即把多台服务器通过负载均衡设备组成一个集群 。

文章插图
四、扩展性扩展性(Extensibility)指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力 。表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,当系统增加新功能时,不需要对现有系统的结构和代码进行修改 。这个没啥好说 。扩展性依赖于前期良好的架构设计 。合理业务逻辑抽象,水平/垂直切割分布式化等等 。
网站可扩展架构的主要手段是事件驱动架构和分布式服务 。
事件驱动通常利用消息队列实现,通过这种方式将消息生产和处理逻辑分隔开 。
服务器服务则是将业务和可复用服务分离开来,通过分布式服务框架调用 。新增加产品可用通过调用可复用的服务来实现自身的业务逻辑,而对现有产品没有任何影响 。
对此,《可扩展的艺术》一书提出了一个更加系统的可扩展模型—— AKF可扩展立方 (Scalability Cube) 。这个立方体中沿着三个坐标轴设置分别为:X、Y、Z 。
- X轴扩展 —— 关注水平的数据和服务克隆,也就是前文提到的“加机器解决问题”
- Y轴扩展 —— 关注应用中职责的划分,比如数据类型,交易执行类型的划分
- Z轴扩展 —— 关注服务和数据的优先级划分,如分地域划分

推荐阅读
- 微服务架构之网关层Zuul剖析
- 解读,禅茶味 禅与茶的关系
- 如何消除Python装饰器产生的副作用
- 茶与佛的共同诉求是心 是生命协调
- 谷歌工具——关键字规划师的操作指南和工作原理
- 护发素和发膜有何不同,发膜和护发素的区别是什么
- js中几种实用的跨域方法原理详解
- 职务和职称的区别
- 流量生态矩阵:搜索引擎的流量突围之战
- 机器学习算法中的7个损失函数的详细指南