1.分布式:通过网络连接的多个组件,通过交换信息协作而形成的系统。

分布式不一定就是不同的组件,同一个组件也可以,关键在于是否通过交换信息的方式进行协作。
不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。

2.分布式系统架构:运行在多个处理器上的软件架构设计。

3.分布式系统:建立在网络之上支持分布式处理的软件系统,由通信网络互联的多处理机体系结构上执行任务的系统。具有高度的内聚性透明性

内聚性:每一个数据库分布节点高度自治,有本地的数据库管理系统。

4.软件架构:是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

5.ADL(架构描述语言):
①一种形式化语言,用于描述软件的体系架构。为软件系统的概念体系结构建模提供了具体语法和概念框架。
②基于底层语义的工具为体系结构的表示、分析、进化、细化、设计过程等提供支持。

6.集群:同一种组件的多个实例,形成的逻辑上的整体。(也就是同一个业务部署在多台机器上,提高系统可用性)

集群的三种类型:
Ⅰ.高可用集群,如RHCS、LifeKeeper等。
Ⅱ.负载均衡集群,如LVS等。
Ⅲ.高性能运算集群。

分布式与集群的区别:
Ⅰ. 集群是个物理形态,分布式是个工作方式。

集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。

Ⅱ.当我们讲一个集群,着重描述这个处理机的静态状态,强调个体和群体之间的联系。当我们讲分布式系统,着重讲这个处理机的动态状态,强调请求和处理直接的分发状况
Ⅲ.分布式是指一个业务分拆多个子业务,部署在不同的服务器上。而集群是指同一个业务,部署在多个服务器上。

7.副本机制
①副本:在分布式系统中,为数据或服务提供的冗余。
②数据副本:在不同的节点上持久化同一份数据。当出现某个节点上的数据丢失时,可以从副本上读取数据。
③服务副本:多个节点提供相同的服务,通过主从关系来服务的高可用方案。

8.分布式架构的基本理论 CAP
一致性(Consistency):所有节点上的数据时刻保持同步。
可用性(Availability):每个请求都能接收到一个响应,无论响应成功或失败。
分区容忍性(Partition tolerance):系统应该持续提供服务,即使系统内部(某个节点分区)有消息丢失。
④CAP原理指的是这三个要素最多只能同时实现两点,不能三者兼顾。

Ⅰ.在设计分布式系统架构时,必须做出取舍。
Ⅱ.对于分布式系统 分区容忍性 是最基本要求,否则就失去了价值。
Ⅲ.设计分布式系统就是在一致性可用性中去一个平衡,对于大多数web应用,其实并不需要强一致性。因此牺牲一致性而换取高可用性,是目前多数分布式系统设计的方向。

⑤CAP理论仅仅适用于原子读写的NoSql场景中,并不适用于数据库系统事务。

原因:当更新一些错误的数据而导致失败时,无论使用什么样的高可用方案都是徒劳,此时数据发生了无法修正的错误。

9.BASE
①Basically Available(基本可用):在分布式系统出现不可预知的故障时,允许瞬时部分可用性

假设系统,出现了不可预知的故障,但还是能用。只是,相比较正常的系统而言,存在响应时间上的损失、功能上的损失。

②Soft State(软状态):表示系统中的数据存在中间状态,并且这个中间状态的存在不会影响系统的整体可用性。也就是表示系统允许在不同节点的数据副本之间进行数据同步的这个过程中存在延时

③Eventually Consistent(最终一致性):所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。

其本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

④BASE 理论的核心思想是:
即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。

⑤BASE理论面向的是大型高可用可扩展的分布式系统。提高 高可用 牺牲强一致性。

10.分布式系统架构的优势
①增大了系统容量。
②加强了系统可用性
③使得系统模块重用度更高。

因为模块化。

④开发和发布速度可以并发而变得更快。

因为软件模块化被拆分。

⑤系统扩展性更高。

11.分布式系统架构的劣势
①架构设计变得复杂,尤其是其中的分布式事务。
②部署单个服务会比较快,但如果一次部署多个服务,流程会变得复杂
③系统的吞吐量会变大,响应时间会变长。
④运维复杂度会因为服务变多而变得复杂。
⑤测试和查错的复杂度增大。
⑥技术多元化,这会带来维护和运维的复杂度。
⑦管理分布式系统中的服务和调度变得困难和复杂。

12.分布式系统的应用
①并行和高性能应用。
②容错应用。
③固有的分布式应用。

13.分布式部署适应的情况
①公司有不同分支机构或较小的分散点与公司网络的连接通常是底宽带、高滞后或不可靠的。
②公司总部网络无法处理中心位置的服务流量。
③分支机构有自己的服务器、企业网络、域控制器和系统管理员,包含数目不定的用户。
④用户要求有更快的邮箱访问速度、更佳的用户体验和可用性。
⑤用户数量大,并发线程多。
⑥对于安全要求高,需要把服务器不同的功能分开部署。

14.使用分布式系统的主要目的
①大流量处理:通过集群技术把大规模并发请求的负载分散到不同的机器上。
②关键业务保护:提高后来服务的可用性,把故障隔离起来阻止多米诺骨牌效应(雪崩效应)。如果流量过大需要,需要对业务降级,以保护关键业务流转。

15.提高系统架构的性能的方法:
①加缓冲:缓存系统(缓存分区,缓存更新,缓存命中)。

缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

②负载均衡:网关系统(负载均衡,服务路由,服务发现)。

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

③异步调用:异步系统(消息队列,消息持久,异步事务)。

异步调用:程序在执行时,无需等待执行的返回值可继续执行后面的代码。

④数据镜像:数据镜像(数据同步,读写分离,数据一致性)。

镜像是用于创建服务器或磁盘的模板。镜像服务提供镜像生命周期管理能力。可以通过服务器或外部文件创建系统盘镜像或数据盘镜像,也可以使用弹性云服务器或云服务器备份创建带数据盘的整机镜像。

⑤数据分区:数据分区(分区策略,数据访问层,数据一致性)。

Ⅰ.分区:将数据库或其组成元素划分为不同的独立部分。
Ⅱ.数据库分区通常是出于可管理性、性能或可用性或负载平衡的原因而进行的。
Ⅲ.在分布式数据库管理系统中分区是很流行,其中每个分区可以分布在多个节点上,节点上的用户在分区上执行本地事务。由于数据的分区,使得系统的整体性能得以提升。
Ⅳ.数据的分区方法:垂直分区、水平分区、混合分区。

16.提高架构的稳定性的方法:
①服务拆分:服务治理,服务调用,服务依赖,服务隔离。
②服务冗余:服务调度,弹性伸缩,故障迁移,服务发现。
③限流降级:异步队列,降级控制,服务熔断。
④高可用架构:多租户系统,灾备多活,高可用服务。
⑤高可用运维:运维系统,全栈监控,Devops,自动化运维。

17.分布式服务的关键技术:
①服务治理。
②架构软件管理。
③DevOps。
④自动化运维。
⑤资源调度管理。
⑥整体架构监控。
⑦流量控制。

计算机领域,当单机性能达到瓶颈时,可以解决性能问题的办法:
1.堆硬件,进一步提升配置。
2.分布式,水平扩展。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐