- 浏览: 13015 次
最新评论
文章列表
为什么添加Watch
ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。
多个分布式进程通过ZooKeeper提供的API来操作共享的ZooKeeper内存数据对象ZNode来达成某种一致的行为或结果,这种模式本质上是基于状态共享的并发模型,与Java的多线程并发模型一致,他们的线程或进程都是”共享式内存通信“。Java没有直接提供某种响应式通知接口来监控某个对象状态的变化,只能要么浪费CPU时间毫无响应式的轮询重试,或基于Java提供的某种主动通知(Notif)机制(内置队列)来响应状 ...
ZooKeeper是分布式协调服务,不是一种静态框架或工具集,它是需要独立部署运行起来的中心化协调服务,分布式系统中的分布式进程通过调用ZooKeeper的服务来实现彼此的协调与约定,具体是通过ZooKeeper的客户端API来操作内存数据节点(ZNode)。
如图,ZooKeeper的数据模型为层次化命名空间树,树上每个节点称为数据节点(ZNode),这些ZNode可以被分布式进程客户端通过统一的API来调用操作,同时每个ZNode都是通过层次化命名路径来定位的,如上图中最下方的节点就可以通过路径“/app1/app3”来确定。
分布式进程通过操作ZNode ...
JAVA线程安全从总体上来说,是指Java对象在多线程运行环境下的一种特性,表现为常规(区别于特殊调用情况)情况下每次调用都能得到正确的逻辑结果。从本质上来说,将对象的方法行为加上了同步控制逻辑,而调用者无须做其他额外的同步控制就可以安全放心的使用对象。
Java线程安全仅仅是指Java对象在多线程环境下的基本安全,在某些特殊的多线程调度环境下,对象内化的同步控制也可能错误,这时想保证整个多线程环境的运行安全仍然需要添加额外的协同控制或同步策略,所以我们不能简简单单的认为调用的对象(verctor,hashtable,stringbuffer等)线程安全就任意使用。
...