发表于: 2017-07-03 21:37:41
1 1105
今天完成的事情:
今天看了zookeeper和redis。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,zookeeper的工作原理还是有些没有搞懂的。
我之前以为redis缓存机智都是自动存取,自动更新,自动删除。原来缓存的添加、删除都需要自己写代码来操作。
明天计划的事情:
继续看zookeeper的工作原理,争取看懂吧。
先做一个redis的简单工具,尝试将redis装到项目中。
遇到的问题:
zookeeper的server端有一个leader,是指的server端并不是完全相同的么?
收获:
zookeeper的设计目的:
1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。
2 .可靠性:具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。
3 .实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
4 .等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
5.原子性:更新只能成功或者失败,没有中间状态。
6 .顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。
Zookeeper中的角色主要有以下三类,
评论