系统架构
heguangwen8
这个作者很懒,什么都没留下…
展开
-
一、架构基础
1 架构是什么1.1 系统与子系统系统:一群有关联的个体,根据某种规则运作,完成单个元件不能单独完成的工作能力。1.2 模块与组件模块:从逻辑的角度来拆分得到的单元。划分模块的目的是职责分离。组件:从物理的角度来拆分得到的单元。划分的目的是单元复用。1.3 框架与架构框架:为了实现组件规范,提供规范的基础功能的软件产品。架构:软件系统的顶层结构2 架构设计的目的架构设计的目的:...原创 2019-04-10 14:52:18 · 256 阅读 · 0 评论 -
二、架构设计原则
遵循三大原则:合适原则、简单原则、演化原则。1 合适原则原则宣言:合适优化于业界领先。(1)将军难打无兵之仗。没有那么多人,却想干那么多活,是失败的第一个主要原因。(2)罗马不是一天建成的。(2)业务倒逼新的方案。2 简单原则原则宣言:简单优于复杂。3 演化原则原则宣言:演化优于一步到位。”建筑一旦完成就不可再变;软件却需要根据业务的发展不断变化“...原创 2019-04-10 15:02:45 · 92 阅读 · 0 评论 -
三、架构设计流程
1 识别复杂度2 设计备选方案根据识别出的主要复杂度,方案设计就有了明确的目标。3 评估和选择备选方案4 详细方案设计细化确定的备选方案,使得备选方案变成一个可落地的设计方案。...原创 2019-04-10 15:16:59 · 139 阅读 · 0 评论 -
四、存储高性能
1 关系型数据库1.1 读写分离本质是将访问压力分散到集群中的多个节点,但没有分散存储压力。读写分离:实现简单,但实际应用中需要应对复制延迟带来的复杂性。解决复制延迟的几种常用方法:一、写操作后的读操作指定发给数据库主服务器。二、读从机失败后再读一次主机。三、关键业务读写操作全部指向主机,非关键业务采用读写分离。1.2 分库分表分库分表能分散访问压力和存储历程。(1)业务分库...原创 2019-04-10 15:54:05 · 317 阅读 · 0 评论 -
五、计算高性能
1 单服务器高性能单服务器高性能关键之一是服务器采取的网络编程模型。网络编程模型有两处关键点:一、服务器如何管理连接;二、服务器如何处理请求。1.1 PPC(每个连接一个进程)1.2 prefork1.3 TPC(每个连接一个线程)1.4 prethread1.5 Reactor1.6 Proactor2 集群高性能2.1 负载均衡分类3种:DNS、硬件负载和软件负载2.2...原创 2019-04-10 17:04:13 · 150 阅读 · 0 评论 -
六、CAP
1 CAP理论CAP理论:在一个分布式系统中,当涉及读写操作时,只能保证一致性、可用性、分区容错性三者中的两个,另外一个必须被牺牲。一致性:对某个客户端来说,读操作保证能返回最新的写操作结果。可用性:非故障节点在合理的时间内返回合理的响应(不是错误和超时)。分区容错性:当出现网络分区后,系统能继续“履行职责”。2 CAP应用在实际应用中,因为网络无法100%可靠。因此,CAP理论只能选...原创 2019-04-10 17:28:32 · 131 阅读 · 0 评论 -
八、存储高可用
本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用。复杂性:如果应对复制延迟和中断导致的数据不一致问题。常见的高可用存储有:主备、主从、主主、集群、分区。分布式事务算法:主要目的:保证分散在多个节点上的数据统一提交或回滚。满足ACID。2PC3PC分布式一致性算法:主要目的:保证同一份数据在多个节点上是一致的,满足CAP中的CP。(1)paxos(2)Ra...原创 2019-04-10 18:06:42 · 1700 阅读 · 0 评论 -
九、计算高可用
1 主备2 主从3 对称集群4 非对称集群原创 2019-04-11 11:55:54 · 149 阅读 · 0 评论 -
十一、可扩展模式
1 可扩展的基本思想所有的可扩展性架构设计,基本思想都是“拆”。常见的拆分思路有三种:面向分层拆分。面向模块/服务拆分。面向功能拆分。2 可扩展方式不同的拆分方式对应不同的扩展方式,得到不同的架构:面向分层拆分:分层架构面向模块/服务拆分:SOA、微服务等面向功能拆分:微内核架构...原创 2019-04-11 11:55:44 · 457 阅读 · 0 评论