关于持久化存储:仅用原子缓存时需开启客户端节点持久化吗?
关于Ignite客户端节点是否需要开启持久化的解答
嘿,这个问题问到点子上了!咱们先把Ignite客户端和服务器节点的角色掰扯清楚,再给你明确结论:
- 客户端节点完全不需要开启
persistenceEnabled配置,具体原因如下:- 客户端的核心定位是「请求转发器」:Ignite客户端本身不会存储任何缓存数据,它只是作为应用和服务器集群之间的中间层,把你的查询、读写请求转发给后端的服务器节点,再把结果回传给应用。既然没有数据存在客户端上,自然不需要持久化。
persistenceEnabled是给服务器节点准备的:这个配置的作用是让服务器节点把内存中的缓存数据持久化到磁盘,防止服务器故障重启后数据丢失。你的服务器已经开启了持久化,这就已经覆盖了数据安全的需求,客户端开这个完全是画蛇添足。- 原子缓存不影响这个结论:你提到所有缓存都是原子缓存,这只关系到数据操作的原子性保障,和客户端是否需要持久化没有半毛钱关系——原子性的逻辑也是在服务器节点上执行的,客户端只是传递请求而已。
额外提一句:如果强行给客户端加上<property name="persistenceEnabled" value="true"/>,除了会浪费客户端的磁盘空间、做一些无用的初始化操作外,不会带来任何好处,反而可能引发一些不必要的小问题。所以客户端保持默认的persistenceEnabled=false就好啦。
内容的提问来源于stack exchange,提问作者dvlcis
相关产品推荐
相关产品推荐

