此VM中已存在与分布式系统的连接

时间:2016-03-21 10:14:45

标签: spring-data-gemfire

我们有一个Spring Mvc应用程序(客户端),它连接到两个不同的Gemfire分布式系统,并通过REST服务公开数据;在引导Spring Mvc应用程序时,我们遇到一个异常,它无法连接到两个分布式系统;我们在配置中定义了两个客户端缓存,这导致了一个问题但我们需要连接到两个分布式系统。我们如何解决这个错误?我们在servlet xml中定义了两个导致问题的客户端缓存标记;

1 个答案:

答案 0 :(得分:0)

基本上,GemFire DistributedSystemClientCache都是单个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有哪些客户端可以连接到两个不同的群集?