分布式概述

1. 分布式与集群的区别:

分布式是把一个业务拆分成多个子业务,然后各个子业务部署在不同的服务器上。而集群是同一个业务部署多个服务器上。

2. 分布式环境遇到的问题

1)通信异常

分布式环境中,各个组件在不同的服务器上,因此必然引入网络,而网络肯定存在不可靠性,因此会给分布式系统带来消息延迟,甚至消息丢失的情况。

2)网络分区

当网络由于发送异常时,将导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能——网络分区(脑裂)

3)三态

分布式系统的每一次请求与响应,存在“三态”,即成功、失败和超时

4)节点故障

节点出现宕机或“僵死”现象。分布式环境下,节点故障具有独立性

3. CAP/BASE 理论

分布式事务:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。通常一个分布式事务中会涉及对多个数据源或业务系统的操作。
一个分布式事务可以看作是多个分布式的操作序列组成的,通常把这一系列分布式的操作序列称为子事务

3.1 cap 理论

cap 理论告诉我们,一个分布式系统不可能同时满足一致性(C:consistency)、可用性(A:availability)和分区容错性(P:partition tolerance)

  • 一致性
    数据是否能够在多个副本之间保持一致的特性。
  • 可用性
    系统提供的服务一直处于可用的状态。
  • 分区容错性
    分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。

3.2 BASE 理论

BASE 是指 Basically availability(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)。
最终一致性存在以下主要五种:

  • 因果一致性(causal consistency)
  • 读己之所写
  • 会话一致性
  • 单调读一致性

一个进程从系统中读取出一个数据项的某个值后,那么系统对于该进程后续的任何数据访问都不应该返回旧值

  • 单调写一致性

一个系统需要能够保证来自同一个进程的写操作被顺序执行

你可能感兴趣的:(分布式概述)