当前位置: 首页 > 后端技术 > Java

分布式定理--CAP定理

时间:2023-04-01 16:58:21 Java

cap定理是指在分布式系统中,cap中只能满足两项。CconsistencyConsistencyAavailabilityAvailabilityPpartitiontolerancePartitiontolerance分区容错--系统在任何一个分区网络故障的情况下都能继续运行网络不可靠,所以要支持分区容错,需要在软件可用性和一致性性权衡。为什么C和A不能同时满足呢?在一般的分布式系统中,首先要保证P(partitionfaulttolerance)。一致性是指所有节点返回的数据是一致的。可用性是指假设服务器在正常响应时间内是可用的。分布式系统中有两个服务A和B。如果在服务A中将用户名从admin改为user,如果要满足一致性,即所有节点返回的数据是一致的。访问服务B时,??需要修改服务A中的数据,锁定B服务的读写操作。修改完成后,A、B服务返回更新后的数据,可用性无法保证(因为有锁时间)。如果要保证可用性,在数据修改过程中不能对B服务的读写操作加锁。修改后A返回更新后的数据,B返回旧数据,不满足一致性。应用一致性对系统数据敏感的数据,如商品价格、库存等,需要保证一致性,放弃可用性。可用性对于数据不敏感的数据,比如产品名称、用户头像、昵称等,需要保证可用性,放弃一致性。网页的更新参考了CAP定理阮一峰的意思