分布式基础(1)

概念

1. 节点

可以独立按照分布式协议完成一组逻辑的程序个体,也可以认为节点是一个完整的,不可分的整体,如果整个程序进程实际上是由多个独立的部分构成的,则可以将一个进程划分为多个节点。

2. 通信

节点之间的网络通信是完全独立且相互隔离的,网络通信是不可靠的,发送消息的节点无法确认消息是否被其他节点接收或者被消费到。

3. 存储

数据库,磁盘。有无状态节点判断,比如A节点把数据同步到B节点存储,不能说A节点是有状态的,只能说B节点是有状态的节点

4.异常

机器宕机,网络异常都是异常的表现

机器宕机好理解,服务器因为一些不可抗拒的原因停止工作,可能是load过高,代码问题,物理因素等等。解决方案有很多,比如节点分散在各个机器上,异地多活等等。

网络异常分为消息丢失,消息乱序,数据错误,不可靠TCP

消息丢失是最常见的网络异常,网络拥塞 路由变动 设备异常等情况发生时都是造成发送的数据丢失,由于传输的信息会存在各种异常情况,所以这也是分布式中需要解决的棘手问题之一。

有A B C三个节点时,AB在机房a C在机房b,当出现机房a和机房b由于物理原理网络不通时,则这种特殊的网络异常为网络分化。这里可能就会造成机房a和机房b的数据不一致(这里也引入了数据一致性问题,我们下面会讲到这个)

异常不可能100%被避免,只能保证多少个9,大多数情况下都是在业务允许的范围内补偿。

副本

副本,分为数据副本和服务副本。 在分布式系统中为数据或服务提供的冗余,保证高可用。

多份副本存在的情况下,就一定存在一致性问题。

强一致性: 顾名思义 每个节点的数据都是保持一致的。

单调一致性: 任何用户在读取数据的时候,只会读取到最近一次成功更新的数据,不会读取到比这之前还早的数据。弱于强一致性

会话一致性: 用户在一次会话的时候,只会读取到某次更新后的数据,这次会话结束后,读取到的值可能不是最近一次更新的值。

最终一致性: 只要在某个节点中完成了业务,将广播至各个节点更新数据。这一过程用户无感知,会在之后的某个时刻数据在各节点都是一致的。同步数据时间通常要求极短,如果很长的话,会退化成弱一致性系统

弱一致性:节点更新成功后,无法在一个缺点的时间内把所有节点数据都同步。

转载于:https://www.cnblogs.com/adroit/p/10959939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值