我有本地Region
,我想将Region
数据持久保存到磁盘。如何使用DataPolicy
定义它?
答案 0 :(得分:0)
我不确定您在这里要问的是什么,问题还不够详细……无论哪种方式,hangup_cause
枚举都有DataPolicy
和PERSISTENT_REPLICATE
值您可以在配置区域以使其持久化时使用它。
希望这会有所帮助。
答案 1 :(得分:0)
如果您的地区确实是“本地”,则该地区的数据仅存储在GemFire数据节点(服务器)本地,或者在您的应用程序(如果它是集群的客户端或同级成员)本地存储(两种方式),然后您可以使用正确的Region快捷方式指定数据策略。
例如,如果您的应用程序/安排使用的是gcloud dataflow jobs run [NAME_OF_THE_JOB_WHATEVER_YOU_LIKE] \
--gcs-location=gs://[YOUR_BUCKET_HERE]/templates/PubsubToDatastore.json \
--zone=[ZONE_WHERE_YOU_WANT_TO_RUN] \
--parameters "pubsubReadTopic=[YOUR_PUBSUB_TOPIC_HERE],datastoreWriteProjectId=[YOUR_PROJECTID_HERE]"
(即您的应用程序是缓存客户端),那么您仍然可以使用ClientRegionShortcut.LOCAL_PERSISTENT
定义仅LOCAL的持久性区域。
如果您的应用程序/安排使用对等端ClientCache
(即您的应用程序实际上是作为数据节点/服务器,集群中的对等成员参与),那么您仍然可以定义仅LOCAL的持久性区域使用RegionShortcut.LOCAL_PERSISTENT
。
通过GemFire API(对等Cache
):
Cache
通过GemFire API(Cache peerCache = new CacheFactory(..)
.set(..)
.create();
RegionFactory localPersistentServerRegion =
peerCache.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT);
):
ClientCache
通过使用SDG XML(对等ClientCache clientCache = new ClientCacheFactory(..)
.set(..)
.create();
ClientRegionFactory localPersistentClientRegion =
clientCache.createClientRegionFactory(ClientRegionShortcut.LOCAL_PERSISTENT);
):
Cache
通过使用SDG XML(<gfe:local-region id="ExampleLocalPersistentServerRegion" persistent="true"/>
):
ClientCache
通过使用SDG JavaConfig(对等<gfe:client-region id="ExampleLocalPersistentClientRegion"
shortcut="LOCAL_PERSISTENT"/>
):
Cache
通过使用SDG JavaConfig(@Configuration
@PeerCacheApplication
class GemFireConfiguration {
@Bean
LocalRegionFactoryBean exampleLocalPersistentServerRegion(
GemFireCache peerCache) {
LocalRegionFactoryBean exampleRegion =
new LocalRegionFactoryBean();
exampleRegion.setCache(peerCache);
exampleRegion.setClose(false);
exampleRegion.setPersistent(true);
return exampleRegion;
}
):
ClientCache
在SDG中,还可以使用其他方法使用纯Annotation-based configuration model完成相同操作,但这应该可以帮助您。
干杯! -约翰