2016-03-21 17 views
0

İki farklı Gemfire dağıtımlı sisteme bağlanan ve REST hizmetleri aracılığıyla verilere maruz kalan bir Spring Mvc uygulamasına (istemci) sahibiz; Spring Mvc uygulamasını önyüklerken, iki dağıtık sisteme bağlanamayacak bir istisna alıyoruz, konfigürasyonumuzda bir sorun yaratan iki istemci önbelleği belirledik ancak iki dağıtılmış sisteme bağlanma ihtiyacımız var. Bu hatayı nasıl çözebiliriz? Bir soruna neden olan servlet xml'de iki istemci önbellek etiketi tanımladık;Bu VM'de dağıtılmış bir sisteme zaten bir bağlantı var

cevap

0

Esasen, hem GemFire ​​DistributedSystem ve ClientCache Tek bir JVM işleminde Singletons vardır ve önemli ölçüde farklı DistributedSystem konfigürasyonları ile aynı JVM 2 farklı istemci önbellekleri olması mümkün değildir.

2 farklı GemFire ​​kümesine (yani, DistributedSystems) bağlı tek bir istemci önbelleğini kullanan müşterileri duydum, ancak bunun aslında önerildiğinden emin değilim.

Aşağıdakileri deneyebilirsiniz. Bu çalışırsa eğer iki kümeleri ...

Cluster 1: Locator A, Server B, Server C 

Cluster 2: Locator Z, Server X, Server Y. 
Sonra şöyle 2 havuzlu bir tek önbellek oluşturmak mümkün olabilir

...

<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> 

emin değilim var ki, ama belki . Ayrıca, aslında ya da tavsiye edilir emin değilim.

İstemcilerinizin 2 farklı kümeye bağlanmasıyla ilgili UC'niz nedir?

+0

Not: Bu çalışmanın bir örneğini burada oluşturdum (https://github.com/jxblum/spring-gemfire-tests/blob/master/src/test/java/org/spring/data/gemfire/cache/ ClientCacheConnectedToMultipleDistributedSystemsTest.java) IDF'nizde, 2 GemFire ​​Server yapılandırması için (GemFireServerAppOne ve GemFireServerAppTwo) ilk çalıştırma ayarlarını yapılandırmanız gerekir. Sunucular çalışırken, testi çalıştırabilirsiniz. Ayrıca, aynı DS'ye katılan 2 sunucunun hiçbir şekilde not almadığını unutmayın. Ayrı ve bağımsız olsalar bile, gerçekten 2 kümeyi temsil ediyorlar (her biri 1 üye ile). –

+0

Merhaba John, yukarıdaki yapılandırmayı denediğimde bir hata aldım. NoUniquieBeanDefinitionException: No qualify bean type com.gemstone.gemfire.cache.client.Pool –

+0

Caused by: org.springframework.beans.factory.BeanCreationException: Bean ile hata oluşturuluyor 'gemfireCache' adı: FactoryBean nesne oluşturma konusunda istisna attı; n tahmin edilen istisna org.springframework.beans.factory.BeanInitializationException: 'com.gemstone.gemfire.cache.client.Pool' adı 'null' olan fasulye yok, bulundu .; nested exception org.springframework.beans.factory.NoUniqueBeanDefinitionException: [com.gemstone.gemfire.cache.client.Poo l] türünde hiçbir niteleyici fasulye tanımlanmadı: beklenen eşleşen tek fasulye ancak 2: –

İlgili konular