通过监视点代替显式缓存管理-intouch2017培训资料

时间:2024-06-30 01:12:58
【文件属性】:

文件名称:通过监视点代替显式缓存管理-intouch2017培训资料

文件大小:4.44MB

文件格式:PDF

更新时间:2024-06-30 01:12:58

ZooKeeper 分布式

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


网友评论