ZooKeeper 保证数据一致性
learn from 从0开始学大数据(极客时间)
文章目录
- 1. 分布式一致性原理
- 2. Paxos 算法与 ZooKeeper 架构
1. 分布式一致性原理
CAP 原理认为,一个提供数据服务的分布式系统 无法同时满足 数据一致性(Consistency)、可用性(Availibility)、分区耐受性(Patition Tolerance)这三个条件
- 一致性:返回最新的数据或者错误,而不是过期的数据
- 可用性:每次请求都得到响应,但不保证响应的数据是最新的
- 分区耐受性:即使网络原因导致部分服务器节点丢失或延迟,系统依然可以操作
关于 CAP 原理,更准确的说法是,在分布式系统必须要满足 分区耐受性 的前提下,可用性
和 一致性
无法同时满足
2. Paxos 算法与 ZooKeeper 架构
- 收到请求后,发送给其他服务器进行表决
- 如果收到多个,就按时间戳和服务器排序规则进行表决
只有收到多数表决同意时,才会决定执行
表决机制保证只有一个请求会执行,保证一致性
牺牲了部分可用性,换来数据一致性
- ZooKeeper 提供的 一致性数据服务,用于 选举 集群当前工作的主服务器
- ZooKeeper 系统的 多台服务器存储相同数据,并且每次数据更新都要 所有服务器投票表决,ZooKeeper 集群的 性能 会随着 服务器数量的增加而下降
ZooKeeper 保证数据一致性相关推荐
- php并发扣款,PHP 并发扣款,保证数据一致性(悲观锁)
业务场景分析 用户购买商品的逻辑中,需要对用户钱包的余额进行查询和扣款 异常:如果同一用户并发执行多个业务进行"查询+扣款"的业务中有一定概率出现数据不一致 Tips:如果没有做限 ...
- redis主从复制如何保证数据一致性_面试官:Redis 主从复制时网络开小差了怎么整?...
上周因为实在太忙就认认真真写了一篇水文,吹了一下自己过去的经历,反响竟然超出了我的预期,并且后台还有读者留言表示想看续集的.哈哈,果然大家还是对水文更有热情. 这期我们继续回到之前的 Redis 话题 ...
- mysql数据迁移数据一致性检教6_如何在数据库迁移中保证数据一致性?
原标题:如何在数据库迁移中保证数据一致性? 作者 | 王斌 译者 | 平川 策划 | 万佳 在分布式系统中,保持数据一致非常困难,而且很容易出错.在本文中,我们将探索一种在迁移期间保持数据一致性的方法 ...
- MySQL 在高并发下的 订单撮合 系统使用 共享锁 与 排他锁 保证数据一致性
原文:MySQL 在高并发下的 订单撮合 系统使用 共享锁 与 排他锁 保证数据一致性 作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe1 ...
- RabbitMQ实现多系统间的分布式事务,保证数据一致性
点击关注公众号,实用技术文章及时了解 一.实验环境 Lunix系统:Centos7.5 安装软件:rabbitmq 开发工具:IDEA 二.实验目的 Rabbitmq实现多系统间的分布式事务,保证数据 ...
- mha数据备份_MySQL备份与恢复之保证数据一致性(5)
在上一篇文章中我们提到热拷贝(MySQL备份与恢复之热拷贝),热拷贝也就是在MySQL或者其他数据库服务在运行的情况下使用mysqlhotcopy命令进行备份.这篇文章我们讲解怎样保证数据一致性.现在 ...
- redis主从保证数据一致性
redis主从保证数据一致性 前言 在redis中为了保证redis的高可用,一般会搭建一种集群模式就是主从模式. 主从模式可以保证redis的高可用,那么redis是怎么保证主从服务器的数据一致性的 ...
- elasticsearch 如何保证数据一致性?
<<ElasticSearch 集群是如何保证数据的一致性和实时性?>> <<Elasticsearch 如何保证数据不丢失?>> <<el ...
- Java怎么保证数据一致性_连续调用多个外部系统写接口保证数据一致性的思路...
概述 某些场景下,我们将业务数据落地之前,是需要先调用外部系统的多个写接口,当这些写接口都操作成功了,我们才将业务数据落地到自己本地的数据库里面.比如说: public void updateProd ...
最新文章
- MongoDB(4.0)分片——大数据的处理之道
- Fedora install chrome
- [C/C++基础知识] 一篇就让你彻底搞懂qsort快速排序的文章
- 加拿大文件服务器,加拿大服务器空间
- 支援 Chrome 插件:微软 Chromium 内核 Edge 浏览器可以下载啦!
- html 手机复制到剪贴板,移动端和pc端的复制到剪贴板功能
- python信号处理教程_PhysioNet生理信号处理(五)--WFDB for Python(DEMO)
- django “如何”系列4:如何编写自定义模板标签和过滤器
- 精品软件推荐 Desktop Central - Free Windows Admin Tools
- 智能电话销售机器人源码搭建部署系统电话机器人源码
- DeepFool论文解读
- uvm_primer ch3 BFM笔记
- jQuery添加css样式/动画效果
- 要用什么态度去面对生活?
- Java一年两年工作经验面试题
- 前端使用XLSX导出表格
- 2021年初级会计实务会计基本假设、会计基础和会计信息质量要求
- 1935 error
- 数据挖掘mooc国防科技大学笔记(自留)
- SWRM(2022)
热门文章
- linux 进程通信机制,linux的进程通信机制小结
- charles 安装 ssl_最全面的解决Charles手机抓包的证书问题(步骤非常详细)
- python 生成式,迭代器,生成器
- 软件自动更新解决方案及QT实现
- matlab功能块,Matlab GUI重用功能块
- framebuffer驱动详解0——framebuffer介绍
- shell脚本while read line的使用
- POJ 3461Oulipo KMP模板
- (机器学习/计算机视觉/深度学习)代码
- 在数据库中, 不用max()/min()找出一个列中最大/最小值的记录