分布式系统

一、什么是分布式:

1、常用的分布式框架:

各种分布式框架层出不穷,常用的基本上就这两个Spring Cloud,阿里的 Dubbo。

2、分布式的概念:

为了解决传统单体服务架构带来的各种问题,代码数量庞大,迭代测试维护困难,可能因为一处改动测试不到位造成整个服务瘫痪等问题,分布式系统就是将一个大的服务拆分成几十个甚至上百个微小的服务。

阿里的 Dubbo,还有 Spring 全家桶里的 Spring Cloud,都是解决分布式微服务架构的优秀框架。

关于分布式系统,通俗点讲就把整个业务系统拆分成很多的服务,每个服务责任到人,服务之间代码都没有冲突,服务可以自治,每个服务到技术也可以自己选型,只要遵循统一的服务调用协议就可以了。每次发布如果就改动一个服务那就上线一个服务,不用所有人一起联调,这样每次发布牵扯到的改动影响也是可控的。不像传统单体架构服务,动辄几百万行代码融在一起。
 

百度百科是这样解释的:
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。

分布式系统并不是某一门具体的技术,也不是具体的框架。用大白话理解就是将计算能力和数据存储能力分散在不同服务器上,通过网络连接组成的一个整体的服务,不同服务器可能是物理机,也可能是虚拟机,分布式的概念可以理解成一种解决方案。

分布式系统总结来说是将数据存储能力和计算能力分布到不同的服务器上,作为一个整体对外服务。目的在于解决单台机器的故障问题,单机计算和 IO 性能问题,以及单机存储空间不足的问题。虽然单机故障的概率比较小,但是随着集群规模大了之后,集群宕机和磁盘损坏基本上是常态,分布式系统主要解决的是各种故障带来的问题。
 

3、分布式系统和微服务什么关系:

关于分布式系统和微服务,两者都只是一种概念。如果你采用微服务,就意味着系统一定是分布式的,分布式系统具有的优缺点在微服务里都会体现。

微服务是分布式系统的一种具体落地方案。

4、分布式的优缺点:

优点:

1、系统可用性提升:

传统的集中式计算或集中式存储在遇见单点故障时很容易造成整个服务不可用,分布式下的服务体系,单台机器有故障,不致于造成整个服务不可用。

2、系统并发能力提升:

请求通过 Nginx 负载均衡被分发到不同的服务器上,运行同样代码的服务器可以有 1 台或 N 台,通常情况下会根据实际用户访问量随时增加机器,无论是数据库或者服务,都可以做到随时水平扩展。
比如双 11 活动,平时订单少 50 台机器就够了,到了 11 订单量剧增,服务器增加到 100 台,每台机器之间相互独立,互不影响。

3、系统容错能力提升:

 同一组服务分别部署在不同的地方,当一个地方的机房/服务器出现问题,可以将请求这个服务器的流量分发到 其他地方的服务器。

同一组服务分别部署在北京上海杭州,杭州的机房突发断电或者火灾,杭州机房的流量会被自动分发到北京和上海的机房,不影响用户使用。

4、低延迟:

不同地方的用户请求,可以根据IP选择距离自己最近的服务器,可以有效降低网络延迟。

参考上一个图,北京的用户请求自动分发到北京,上海的用户请求被分发到上海,服务器会根据用户的 IP 选择距离自己最近的机房,降低网络延迟。 

缺点:

1、分布式服务依赖网络:

服务器间通讯依赖网络,不可靠网络包括网络延时,丢包、中断、异步,一个完整的服务请求依赖一连串服务调用,任意一个服务节点网络出现问题,都可能造成本次请求失败。

2、维护成本高:

传统单体式服务只需要维护一个站点就可以。
分布式服务系统被拆分成若干个小服务,服务从 1 变为几十个上百个服务后,增加运维成本。

3、一致性、可用性、分区容错性无法同时满足:

这个是最主要的,这三种特性就是平时说的 CAP 定理,在分布式系统中,这三种特性最多只能满足两种,无法同时满足,需要根据实际情况去调整牺牲掉其中哪个。

重点!!!CAP定理

目录

一、什么是分布式:

1、常用的分布式框架:

2、分布式的概念:

3、分布式系统和微服务什么关系:

4、分布式的优缺点:

优点:

缺点:

重点!!!CAP定理


  1. C 的全拼是 Consistency,代表 一致性的意思。
  2. A 的全拼是 Availability,代表 可用性的意思。
  3. P 的全拼是 Partition tolerance,代表 分区容错性的意思。

一个分布式系统最多同时满足一致性 (Consistency),可用性 (Availability) 和分区容忍性 (Partition Tolerance) 这三项中的两项。

同时满足一致性(C)和可用性(A)就要牺牲掉容错性(P)


同时满足可用性(A)和分区容错性(P)就要牺牲掉一致性(C)


同时满足一致性(C)和分区容错性(P)就要牺牲掉可用性

(A)

注:

为什么CAP原理只能同时满足两个:


 

BASE定理


BASE定理是对CAP定理的延伸:即使无法做到强一致性(Strong Consistency),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。CAP中提到的一致性是强一致性,所谓“牺牲一致性”指牺牲强一致性保证弱一致性。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。

基本可用:出现故障的时候,允许损失部分可用性,即,保证核心可用。
如,电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务

软状态:允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
软状态本质上是一种弱一致性,允许的软状态不能违背“基本可用”的要求。如,分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时(某些时刻副本数低于3)。

最终一致性:系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
软状态的终极目标是最终一致性。如,分布式存储的副本数最终会达到稳定状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值