zookeeper 核心思想
来源:互联网 发布:真人录音软件 编辑:程序博客网 时间:2024/05/09 19:25
核心思路,架构
zookeeper的核心思想是提供一个非锁机制的Wait Free的用于分布式系统同步的核心服务,提供简单的文件创建读写操作接口,其系统核心本身对文件读写并不提供加锁互斥的服务,但是提供基于版本比对的更新操作,客户端可以基于此自己实现加锁逻辑。客户端可以连接任意zookeeper服务节点来读写数据,zookeeper内部会分为Leader和Follower角色。
所谓wait-free,即等待无关,慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
Zookeeper使用简单的同步策略,通过以下两条基本保证来实现数据的一致性:
- 全局串行化所有的写操作
- 保证同一客户端的指令被FIFO执行(以及消息通知的FIFO)
客户端尽可能通过Cache和消息通知机制来减少与服务器之间不必要的信息沟通,来减轻服务器负担
数据更新操作需要服务器Leader节点协同Slave节点通过ZAB协议(基本就是两阶段提交)进行全局广播来实现,因此随着Slave节点增加,性能是下降的。
数据读操作可以由任意服务器节点提供,如果不是Lead节点,读操作本身不保证数据是最新的,但是可以通过一个Sync(大概就是一个空的写操作)+read的模式来实现对最新数据的读取(由前述两条基本保证可推得)
Zookeeper自身文件系统维护在内存中,通过定期Snapshot和Log记录来实现灾难恢复
阅读全文
0 0
- zookeeper 核心思想
- hibernate核心思想-------------ORM思想
- Zookeeper的核心概念
- ZooKeeper的核心特性
- Zookeeper核心概念梳理
- Zookeeper核心机制
- Zookeeper核心机制
- ZooKeeper的核心特性
- Zookeeper核心机制
- 工作流的核心思想
- ERP的核心思想
- IPD的核心思想
- 面向对象核心思想
- 测度论核心思想
- v 架构核心思想
- 敏捷开发核心思想
- Java四个核心思想
- Spring核心思想
- slf4j log4j logback关系详解和相关用法
- 静态方法和实例方法
- MD5、SHA-1、CRC32区别
- Java线程池ExecutorService时让主线程等待子线程完成后继续处理
- Android知识体系学习及总结
- zookeeper 核心思想
- [教你警告消除]Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined。
- 2017.09.26 idea noclassfound问题 mr-analysis-task中的url2category urlutil重写
- 通过data-bind动态创建选项
- tp3.2 嵌入微信支付功能(前提是已经获取openid)
- Eclipse
- 【20170926】Java每日一练
- 离开百度的24个AI门客,都在野蛮生长
- 简述JDK的安装配置