我们有一个Spring Mvc应用程序(客户端),它连接到两个不同的Gemfire分布式系统,并通过REST服务公开数据;在引导Spring Mvc应用程序时,我们遇到一个异常,它无法连接到两个分布式系统;我们在配置中定义了两个客户端缓存,这导致了一个问题但我们需要连接到两个分布式系统。我们如何解决这个错误?我们在servlet xml中定义了两个导致问题的客户端缓存标记;
答案 0 :(得分:0)
基本上,GemFire DistributedSystem
和ClientCache
都是单个JVM进程中的单例,并且在同一个JVM中不可能有2个不同的客户端缓存,但DistributedSystem
显着不同配置。
我听说有客户使用连接到2个不同GemFire集群的单个客户端缓存(即DistributedSystems
),但我不确定这是否真的被推荐。
您可以尝试以下方法。假设你有两个集群......
Cluster 1: Locator A, Server B, Server C
Cluster 2: Locator Z, Server X, Server Y.
然后,您可以创建一个包含2个池的单个缓存...
<gfe:client-cache/>
<gfe:pool id="clusterOnePool" ... >
<gfe:locator host="LocatorA-Host/IP" port="LocatorA-Port"/>
</gfe:pool>
<gfe:pool id="clusterTwoPool" ...>
<gfe:locator host="LocatorZ-Host/IP" port="LocatorZ-Port"/>
</gfe:pool>
<gfe:client-region id="RegionInClusterOne" shortcut="[PROXY|CACHING_PROXY]"
pool-name="clusterOnePool">
...
</gfe:client-region>
<gfe:client-region id="RegionInClusterTwo" shortcut="[PROXY|CACHING_PROXY]"
pool-name="clusterTwoPool">
...
</gfe:client-region>
我不确定这是否有效,但也许。另外,我不确定是否实际推荐。
您的UC有哪些客户端可以连接到两个不同的群集?