栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式架构-CAP

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式架构-CAP

分布式架构-CAP

分布式系统基础原则
分布式架构
集群,系统多节点
痛点:网络不可靠
维护各个节点的状态,保障各个节点之间数据的同步

1、概述:
  • 布鲁尔定理
  • 对于一个分布式系统而言,不能同时满足以下三点:
    • 一致性(consisteny)
    • 可用性(Availability)
    • 分区容错性(Partition tolerance)
  • 最多只能同时满足以上两点,其中P是必须要保留的
  • 一致性:系统中的所有数据备份,在同一时刻是否同样的值,所有节点在同一时间的数据完全一致,越多节点,数据同步越耗时
  • 可用性:每个请求都能在合理的时间内获得符合预期的响应(不保证获取的结果是最新的数据)。
  • 分区容错性:当节点之间的网络出现问题之后,系统依然能正常提供服务。单节点故障
2、分析CACPAP 2.1、CA不可取(网障)
  • 选择CA,放弃p分区容错性,假设有两个节点互相通信,当发生网络故障时,为了保证 C(一致性),那么就必须将系统锁住,不允许任何写入操作,否则就会出现节点之间数据不一致了,此时如果有其他请求,系统是不可用的,违背了可用性A
  • 在网络正常情况下,CA是可以实现的
2.2、CP架构:
  • 当有客户端向节点A进行写入请求时(准备写入Message 2),节点A会不接收写入操作,导致写入失败,这样就保证了节点A和节点B的数据一致性,即保证了Consisteny(一致性)。
  • 如果有另一个客户端向B节点进行读请求的时候,B请求返回的是网络故障之前所保存的信息(Message 1),并且这个信息是与节点A一致的,是整个系统最后一次成功写入的信息,是能正常提供服务的,即保证了Partition tolerance(分区容错性)。
  • zookeeper
2.3、AP架构
  • 由于网络问题,节点A和节点B之前不能互相通讯。
  • 当有客户端(向节点A进行写入请求时(准备写入Message 2),节点A允许写入,请求操作成功。但此时,由于A和B节点之前无法通讯,所以B节点的数据还是旧的(Message 1)同步失败。
  • 当有客户端向B节点发起读请求时候,读到的数据是旧数据,与在A节点读到的数据不一致。但由于系统能照常提供服务,所以满足了Availability(可用性)要求。
  • EUREKA,REDIS
3、注意事项; 3.1、注册中心的选择:
  • Zookeeper:CP设计,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足—金融行业
  • Eureka:AP原则,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化–
3.2、分布式锁

Redis分布式锁和Java锁的区别

  1. 分布式部署的话,Java锁是锁当前机器上的请求,无法对其他机器的请求进行加锁,因为Java锁用的是jvm的机制,只在本机生效
  2. 即使项目就是单机部署的,那么在加锁的时候,Java锁的粒度会更大,Java锁会对接口的其他请求全部阻塞,但是分布式锁,只会对接口的某一个key进行请求的时候,加锁;
  3. Redis分布式锁有key的入参,如果同时key1和key2都来请求接口,那么Redis分布式锁可以同时执行,但是Java锁,不行,会阻塞key2的请求

Redis分布式锁和zk分布式锁怎么选择:

  1. Redis采用的是AP模式,zk采用的是CP模式
  2. Redis分布式锁简单粗暴,获取不到锁,就直接不断的重试,比较消费资源、性能
  3. Redis本身的设计就不是强一致性的,所以,在一些极端的场景下,会出现问题,但是大部分情况下,是不会遇到所谓的极端复杂场景,所以,使用Redis锁也是一个选择
  4. zk的设计就是强一致性,如果获取不到锁,就添加一个监听,不用一直轮询,但是zk也有其缺点,如果有较多的客户端频繁的申请加锁解锁,对zk集群的压力比较大

https://www.csdn.net/tags/MtTaMg0sNDc4OTcxLWJsb2cO0O0O.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号