Java 如何使用ClientCache在GemFire中发布所有集群/实例

Java 如何使用ClientCache在GemFire中发布所有集群/实例,java,gemfire,clientcache,Java,Gemfire,Clientcache,我们有3个集群(美国、欧盟、亚太),每个集群有2台主机(一台主主机,另一台辅助主机) 如果有更新,每个群集的主主机将更新同一群集中的辅助主机。但是集群之间不进行通信 我们有一个进程,需要更新每个集群的主主机上运行的所有3个GemFire缓存(最终将更新辅助主机GemFire) 如何使用ClientCache发布到这三个独立的集群?在单个JVM中,一个缓存的实例不能超过一个,这是因为它在内部是一个独立的集群。此外,非常不鼓励将一个客户端连接到多个分布式系统,因为您可能会遇到其他问题,特别是不兼容的

我们有3个集群(美国、欧盟、亚太),每个集群有2台主机(一台主主机,另一台辅助主机)

如果有更新,每个群集的主主机将更新同一群集中的辅助主机。但是集群之间不进行通信

我们有一个进程,需要更新每个集群的主主机上运行的所有3个GemFire缓存(最终将更新辅助主机GemFire)


如何使用ClientCache发布到这三个独立的集群?

在单个JVM中,一个
缓存的实例不能超过一个,这是因为它在内部是一个独立的集群。此外,非常不鼓励将一个客户端连接到多个分布式系统,因为您可能会遇到其他问题,特别是不兼容的类定义和/或命名空间冲突

然而,GemFire/GEODE提供了一种嵌入式机制来实现这个用例:,它基本上允许您在不同的、松散耦合的分布式系统之间进行水平扩展

希望这有帮助


最佳eGards在一个JVM中不能有一个以上的
缓存实例,这是因为它在内部作为一个。此外,非常不鼓励将一个客户端连接到多个分布式系统,因为您可能会遇到其他问题,特别是不兼容的类定义和/或命名空间冲突

然而,GemFire/GEODE提供了一种嵌入式机制来实现这个用例:,它基本上允许您在不同的、松散耦合的分布式系统之间进行水平扩展

希望这有帮助


最好的电子阅读器

在打开cc2之前关闭cc1,在打开cc3之前关闭cc2

如果您确实必须访问其他集群中的数据,则: -如果需要来自其他集群中的所有区域的数据,请考虑WAN网关。
如果您只需要从另一个集群中的区域选择数据,则考虑一个CQRS设计,在这个过程中,您有一个进程针对远程集群运行CQ(连续查询),并用结果更新您的近集群。

在打开cc2之前关闭您的cc1,然后在打开cc3之前关闭cc2。 如果您确实必须访问其他集群中的数据,则: -如果需要来自其他集群中的所有区域的数据,请考虑WAN网关。


如果您只需要从另一个集群中的区域选择数据,那么考虑一个CQRS设计,在这个过程中,您有一个针对远程集群运行CQ(连续查询)和更新您的近集群的结果。

对基本问题的道歉,但我的知识有限,而且这个问题在PRD发布之前很晚就实现了。敬请帮助。对于基本问题,我深表歉意,但我的知识有限,并且在产品发布之前很晚才意识到这个问题。请帮助。是-现在使用批量发布(putAll)和ClientCache。批量发布后关闭连接。下一个版本将考虑WAN网关选项。感谢@Urisen和WesYes-现在使用ClientCache的批量发布(putAll)。批量发布后关闭连接。下一个版本将考虑WAN网关选项。谢谢@Urisen和Wes
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 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();