分布式系统(distributed system) 是建立在网络之上的软件系统。
内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性:是指每一个数据库分布节点对用户的运用来说都是透明的,看不出是本地还是远程。
在分布式数据系统中,用户觉得不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上实行。

大略来说:在一个分布式系统中,一组独立的打算机展现给用户的是一个统一的整体,就彷佛是一个别系似的。
分布式系统作为一个整体对用户供应做事,而全体系统的内部的协为难刁难用户来说是透明的,用户就像是指利用一个mysql 一样。
分布式架构的演进
(1)初始阶段架构
特色:运用程序,数据库,文件等所有资源都放在一台做事器上。
(2)运用做事 和 数据做事 以及 文件做事 分离
解释:好景不长,创造随着系统访问量的再度增加,webserver机器的压力在高峰期会上升到比较高,这个时候开始考虑增加一台webserver。
特色:运用程序、数据库、文件分别支配在独立的资源上。
(3)利用缓存改进性能
解释:系统访问特点遵照二八定律,即80%的业务访问集中在20%的数据上。
缓存分为 本地缓存 和 远程分布式缓存,本地缓存访问速率更快但缓存数据量有限,同时存在与运用程序争用内存的情形。
特色:数据库中访问较集中的一小部分数据存储在缓存做事器中,减少数据库的访问次数,降落数据库的访问压力。
(4)利用“运用做事器”集群
解释:在做完分库分表这些事情后,数据库上的压力已经降到比较低了,又开始过着每天看着访问量暴增的幸福生活了。
溘然有一天,创造系统的访问又开始有变慢的趋势了,这个时候首先查看数据库,压力统统正常,之后查看webserver,创造apache壅塞了很多的要求,
而运用做事器对每个要求也是比较快的,看来是要求数太高导致须要排队等待,相应速率变慢。
特色:多台做事器通过负载均衡同时向外部供应做事,办理单台做事器处理能力和存储空间上限的问题。
描述:利用集群是系统办理高并发、海量数据问题的常用手段。通过向集群中追加资源,提升系统的并发处理能力,使得做事器的负载压力不再成为全体系统的瓶颈。
(5)数据库读写分离
解释:享受了一段韶光的系统访问量高速增长的幸福后,创造系统又开始变慢了,这次又是什么状况呢,经由查找,创造数据库写入、更新的这些操作的部分数据库连接的资源竞争非常激烈,导致了系统变慢。
特色:多台做事器通过负载均衡同时向外部供应做事,办理单台做事器处理能力和存储空间上限的问题。
描述:利用集群是系统办理高并发、海量数据问题的常用手段。通过向集群中追加资源,使得做事器的负载压力不在成为全体系统的瓶颈。
(6)反向代理和CDN加速
特色:采取CDN和反向代理加快系统的访问速率。
描述:为了搪塞繁芜的网络环境和不同地区用户的访问,通过CDN和反向代理加快用户访问的速率,同时减轻后端做事器的负载压力。CDN与反向代理的基本事理都是缓存。
(7)“分布式文件”系统 和 “分布式数据库”
解释:随着系统的不断运行,数据量开始大幅度增长,这个时候创造分库后查询仍旧会有些慢,于是按照分库的思想开始做分表的事情
特色:数据库采取分布式数据库,文件系统采取分布式文件系统。
描述:任何强大的单一做事器都知足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展终极也将无法知足需求,须要利用分布式数据库及分布式文件系统来支撑。
分布式数据库是系统数据库拆分的末了方法,只有在单表数据规模非常弘大的时候才利用,更常用的数据库拆分离段是业务分库,将不同的业务数据库支配在不同的物理做事器上。
(8)利用NoSQL和搜索引擎
特色:系统引入NoSQL数据库及搜索引擎。
描述:随着业务越来越繁芜,对数据存储和检索的需求也越来越繁芜,系统须要采取一些非关系型数据库如NoSQL和分数据库查询技能如搜索引擎。
运用做事器通过统一数据访问模块访问各种数据,减轻运用程序管理诸多数据源的麻烦。
(9)业务拆分
特色:系统上按照业务进行拆分改造,运用做事器按照业务区分进行分别支配。
描述:为了应对日益繁芜的业务场景,常日利用分而治之的手段将全体系统业务分身分歧的产品线,运用之间通过超链接建立关系,也可以通过行列步队进行数据分发,
当然更多的还是通过访问同一个数据存储系统来构成一个关联的完全部系。
纵向拆分:将一个大运用拆分为多个小运用,如果新业务较为独立,那么就直接将其设计支配为一个独立的Web运用系统 纵向拆分相对较为大略,通过梳理业务,将较少干系的业务剥离即可。
横向拆分:将复用的业务拆分出来,独立支配为分布式做事,新增业务只须要调用这些分布式做事 横向拆分须要识别可复用的业务,设计做事接口,规范做事依赖关系。
(10)分布式做事
特色:公共的运用模块被提取出来,支配在分布式做事器上供应用做事器调用。
描述:随着业务越拆越小,运用系统整体繁芜程度呈指数级上升,由于所有运用要和所有数据库系统连接,终极导致数据库连接资源不敷,谢绝做事。
领取办法:点赞关注
前60名限时佳构福利:
①分布式中间件及多进程实战
②Redis缓存击穿/缓存雪崩预防策略
③腾讯高等PHP工程师佳构笔试题
④Swoole并发百万的协程利用及剖析
领取办法:点赞关注小编后私信【资料】获取资料领取办法!