对于gemfire缓存,我们在3个不同的地理区域使用客户机/服务器架构,有3个不同的定位器。
缓存服务器
缓存客户端
下列方案的默认行为是什么?
提前感谢!
发布于 2017-02-09 19:34:34
好的,基于我如何解释您的配置/设置和您的问题,这是我如何回答他们目前。
还请注意,我假设您没有在您居住在不同“地理区域”的独立集群之间配置WAN。但是,如果配置了WAN,有些问题并不重要。
当缓存服务器重新启动时,缓存客户端中的数据会发生什么变化?
没什么。
如果缓存客户端也在“本地”存储数据(例如代理),那么数据将保持原样。
缓存客户端还可以拥有仅对缓存客户端可用的本地区域,即服务器集群中没有匹配(按“名称”)区域。这是由一个“本地”ClientRegionShortcuts (例如,ClientRegionShortcut.LOCAL,相对应到DataPolicy.NORMAL)决定的。当然,如果集群中的服务器出现故障,这些类型的客户端区域中的数据不会发生任何变化。
如果您的客户端区域是代理,那么您的客户端不会在本地存储任何数据,至少对于那些配置为代理的区域(即ClientRegionShortcut.PROXY,相对应到DataPolicy.EMPTY)。
所以..。
对于具有代理或缓存代理客户端缓存区域的缓存客户端,行为是否不同?
请参阅上面的内容,但从本质上讲,基于“代理”的客户端区域将不再能够与服务器“通信”。
对于代理,所有区域操作(gets、puts等)都将失败,只有某种类型的例外。
对于CACHING_PROXY,如果数据是本地可用的,Region.get就会成功。但是,如果数据不可用,客户端区域将向服务器区域发送请求,这当然会失败。如果您正在执行Region.put,那么这将导致无法将数据发送到服务器。
重新启动缓存客户端中的数据会发生什么情况?
取决于您的“兴趣注册(结果)策略”(即InterestResultPolicy),当客户端登记利益用于服务器区域中的事件(键/值)时,特别是当客户端返回联机时。感兴趣的“表达式”(或者是特定的键,或者是"ALL_KEYS“或正则表达式)决定了客户端区域在初始化时将收到什么。这是可能的不接受任何东西。
持久性( durable标志在`Region.registerInterest(..)中)。在客户端“订阅队列”中,“订阅队列”只确定当客户端未连接时,服务器是否会为客户端存储事件,以便客户端在脱机时能够收到丢失的事件。
注:“登记权益”的另一种选择是CQs。
至于..。
对于具有代理或缓存代理客户端缓存区域的缓存客户端,行为是否不同?
就我所知没有。这一切都取决于你的利益登记和/或CQs。
所有缓存服务器和缓存客户端在一个地理区域崩溃,当它们启动时,缓存服务器和缓存客户机中的数据会发生什么变化?
如果不启用持久性,则不会有任何数据。GemFire是一个“内存中的”数据网格,因此,它只将数据保存在内存中,除非您通过持久性或编写CacheWriter将数据存储在外部数据存储区(例如关系数据库管理系统)来安排外部存储数据。
对于具有代理或缓存代理客户端缓存区域的缓存客户端,行为是否不同?
在这种情况下不行。
希望这能帮上忙!-John
https://stackoverflow.com/questions/42124313
复制相似问题