我们有 3 个集群(美国、欧盟、AP),每个集群有 2 台主机(一个主要,另一个辅助)
如果有更新,每个集群的主要主机都会更新同一集群中的辅助主机。但是集群不相互交谈。
我们有一个进程需要更新在每个集群的主主机上运行的所有 3 个 GemFire 缓存(最终将更新辅助主机 GemFire)
cache-cluster-1.xml
<client-cache>
<pool name="clientCachePool" read-timeout="90000" >
<server host="pri1-hostname" port="1111" />
<server host="sec1-hostname" port="1111" />
</pool>
<region>...</region>
<client-cache>
cache-cluster-2.xml
<client-cache>
<pool name="clientCachePool" read-timeout="90000" >
<server host="pri2-hostname" port="1111" />
<server host="sec2-hostname" port="1111" />
</pool>
<region>...</region>
<client-cache>
cache-cluster-3.xml
<client-cache>
<pool name="clientCachePool" read-timeout="90000" >
<server host="pri3-hostname" port="1111" />
<server host="sec3-hostname" port="1111" />
</pool>
<region>...</region>
<client-cache>
如果我尝试初始化单独的 ClientCache,则会出现以下错误 - > java.lang.IllegalStateException:此 VM 中已存在与分布式系统的连接。
ClientCache cc1 = ccf.set("cache-xml-file", "cache-cluster-1.xml").create();
ClientCache cc2 = ccf.set("cache-xml-file", "cache-cluster-2.xml").create();
ClientCache cc3 = ccf.set("cache-xml-file", "cache-cluster-3.xml").create();
如何使用 ClientCache 发布到这三个独立的集群?