对于gemfire缓存,我们在3个不同的地理区域使用客户端/服务器架构,使用3个不同的定位器。
缓存服务器
缓存客户端
以下方案的默认行为是什么:
提前致谢!
答案 0 :(得分:1)
好的,基于我如何解释您的配置/设置和问题,这就是我目前的回答。
另请注意,我假设您没有在位于不同地理区域的单独群集之间配置WAN"。但是,如果配置了WAN,一些问题无关紧要。
缓存服务器重启时缓存客户端中的数据会发生什么变化?
没有
如果缓存客户端也存储数据"本地" (例如CACHING_PROXY),那么数据将保持不变。
缓存客户端还可以使仅本地区域仅对缓存客户端可用,即服务器群集中没有匹配(通过" name")区域。这是由本地"本地"中的一个决定的。 ClientRegionShortcuts
(例如ClientRegionShortcut.LOCAL,corresponds到DataPolicy.NORMAL)。当然,如果群集中的服务器出现故障,则这些类型的客户端区域中的数据不会发生任何变化。
如果您的客户区域是PROXIES,那么您的客户端不会在本地存储任何数据,至少对于那些配置为PROXIES的区域(即ClientRegionShortcut.PROXY,corresponds到DataPolicy.EMPTY )。
因此...
具有代理或缓存代理客户端缓存区域的缓存客户端的行为是否不同?
见上文,但基本上是你的" PROXY"基于客户的区域将不再能够进行通信"与服务器。
对于PROXY,所有Region操作(获取,放置等)都将失败,并具有某种异常。
对于CACHING_PROXY,如果数据在本地可用,则Region.get应该成功。但是,如果数据不可用,客户端Region会将请求发送到服务器Region,这当然会失败。如果您正在执行Region.put,那么将无法检测到数据无法发送到服务器。
缓存客户端重启时的数据会怎样?
取决于您的<#34; 兴趣注册(结果)政策&#34; (即InterestResultPolicy)当服务器区域中的事件(键/值)的客户端registers interests时,特别是当客户端重新联机时。兴趣&#34;表达&#34; (特定键或&#34; ALL_KEYS&#34;或正则表达式)确定客户端区域在初始化时将接收的内容。这可能是not to receive anything。
持久性(客户端&#34;订阅队列中的`Region.registerInterest(..)。)中的durable
标志&#34;仅确定当客户端未连接时服务器是否将为客户端存储事件,以便客户端可以在脱机时接收错过的内容。
注意,&#34; 注册兴趣的替代&#34;是CQ。
至于......
具有代理或缓存代理客户端缓存区域的缓存客户端的行为是否不同?
不是我知道的。这一切都取决于您的兴趣注册和/或CQ。
一个地理区域中的所有缓存服务器和缓存客户端崩溃,缓存服务器和缓存客户端启动时的数据会发生什么变化?
如果不启用持久性,则不会有数据。 GemFire是一个内存和#34;数据网格,因此,它只将数据保存在内存中,除非您通过持久性或编写CacheWriter
将数据存储在外部数据存储(例如RDBMS)中来安排外部存储数据。 / p>
具有代理或缓存代理客户端缓存区域的缓存客户端的行为是否不同?
不是这种情况。
希望这有帮助! -John