-
使用监视点替代显式缓存管理-源自intouch2017培训资料
资源介绍
4.6 通过监视点代替显式缓存管理
从应用的角度来看,客户端每次都是通过访问ZooKeeper来获取给
定znode节点的数据、一个znode节点的子节点列表或其他相关的
ZooKeeper状态,这种方式并不可取。反而更高效的方式为客户端本地
缓存数据,并在需要时使用这些数据,一旦这些数据发生变化,你让
ZooKeeper通知客户端,客户端就可以更新缓存的数据。这些通知与我
们之前所讨论的一样,应用的客户端通过注册监视点来接收这些通知消
息。总之,监视点可以让客户端在本地缓存一个版本的数据(比如,一
个znode节点数据或节点的子节点列表信息),并在数据发生变化时接
收到通知来进行更新。
ZooKeeper的设计者还可以采用另一种方式,客户端透明地缓存客
户端访问的所有ZooKeeper状态,并在更新缓存数据时将这些数据置为
无效。实现这种缓存一致性的方案代价非常大,因为客户端也许并不需
要缓存所有它们所访问的ZooKeeper状态,而且服务端需要将缓存状态
置为无效,为了实现失效机制,服务端不得不关注每个客户端中缓存的
信息,并广播失效请求。客户端数量很大时,这两方面的代价都非常
大,而且我们认为这样也是不可取的。
不管是哪部分负责管理客户端缓存,ZooKeeper直接管理或
ZooKeeper应用来管理,都可以通过同步或异步方式进行更新操作的客
- 上一篇: 可恢复的故障-intouch2017培训资料
- 下一篇: SimuLink仿真卫星姿态控制.pdf