Configurar replicação ehcache - o que as configurações de multicast eu preciso?

votos
10

Eu estou tentando configurar ehcache replicação como documentado aqui: http://ehcache.sourceforge.net/EhcacheUserGuide.html#id.s22.2
Este é em uma máquina Windows, mas acabará por ser executado em Solaris em produção.

As instruções dizem que a criação de um provedor da seguinte forma:

 <cacheManagerPeerProviderFactory
     class=net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory
     properties=peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
     multicastGroupPort=4446, timeToLive=32/>

E um ouvinte assim:

<cacheManagerPeerListenerFactory
    class=net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory
    properties=hostName=localhost, port=40001,
    socketTimeoutMillis=2000/>

Minhas perguntas são:
É o endereço IP multicast e arbitrária porta (eu sei o endereço tem de viver dentro de uma faixa específica, mas que eles têm de ser números específicos)?
Será que eles precisam para ser configurado de alguma forma por nosso administrador do sistema (eu estou em uma rede de escritório)?

Eu quero testá-lo localmente para que estou executando duas instâncias do Tomcat separados com a configuração acima. O que eu preciso mudar em cada um? Eu sei que ambos os ouvintes não pode escutar na mesma porta - mas que sobre o provedor?
Além disso, são as portas ouvinte arbitrário também?

Eu tentei configurá-lo como acima, mas na minha testando os caches não parecem ser replicado - o valor acrescentado no cache do um tomcat não está presente no outro cache.
Existe algo que eu possa fazer para depurar essa situação (que não packet sniffing)?

Agradecemos antecipadamente por qualquer ajuda, foi rasgando o meu cabelo para fora sobre este!

Publicado 19/05/2009 em 21:06
fonte usuário
Em outras línguas...                            


6 respostas

votos
5

Um erro que encontramos durante replicação ponto EHCache. Isto pode ser útil para que alguém tentar replicação ponto em uma única caixa de local.

Eu queria correr 3 casos replicados por pares de EhCache em uma única caixa de Windows Vista usando peerDiscovery = automática (o eventual ambiente de destino foi Linux).

O peer-replicação não funcionou. Estranhamente, todas as instâncias Ehcache estavam começando-se sem quaisquer erros ou queixas no log.

Levei um tempo para descobrir o meu erro; sem nada nos logs eu tive que Grokar redor: eu estava usando o mesmo listenerPort (40001) na configuração do ouvinte pares para cada uma das instâncias Ehcache. Usando diferentes listenerPorts (40001, 40002 ...) fez o truque.

<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="port=40001, socketTimeoutMillis=3000"/>

<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="port=40002, socketTimeoutMillis=3000"/>

Note-se que esta é a configuração de 'peer ouvinte' que necessário números de portas diferentes. A 'descoberta de pares' multicast ainda utiliza números de endereço e de porta multicast idênticos para cada exemplo ehcache.

Respondeu 22/04/2010 em 09:39
fonte usuário

votos
5

Eu quero testá-lo localmente para que estou executando duas instâncias do Tomcat separados com a configuração acima.

Como acabo apresentou uma resposta sobre cherouvims questão relacionadas Eu apenas gostaria de destacar aqui também que eles são de fato dando um exemplo fazendo algo semelhante, pelo menos (vários nós por host, embora um exemplo apenas): ver secção Exemplo completa em o RMI Distributed Cache documentação.

É realmente importante para alterar a porta TCP para cada cacheManagerPeerListenerFactory, mas as configurações de multicast pode (eu acho que eles devem) permanecer o mesmo: você pode ver isso em ação dentro dos ehcache.xml de para o exemplo completo mencionado acima: o número da porta é aumentada um por um de 40001 até 40006 por nó enquanto as configurações de multicast ficar idêntica.

Se você tiver obedecido isso, seu problema pode apenas estar relacionado com Tomcat rodando em Windows - ver relativo parágrafo dentro seção Problemas comuns no Caching RMI Distributed :

Há um bug no Tomcat e / ou o JDK, onde qualquer ouvinte RMI irá falhar iniciar no Tomcat se o caminho de instalação tem espaços nele.
[...]
Como o padrão no Windows é instalar o Tomcat em "Arquivos de Programas", este problema ocorrerá por padrão.

Respondeu 24/08/2009 em 17:09
fonte usuário

votos
2
 <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>

apenas fazer o acima, ehcache usará o próximo disponível! Então você não precisa se preocupar com configuração em novos nós que você deseja implantar no cluser

-Jeryl Cozinhe

Respondeu 27/05/2010 em 19:45
fonte usuário

votos
2

Apenas como um rápido follow-up.

Nós conseguimos este trabalho com duas máquinas separadas que resolveu o problema original de fazê-la funcionar em tudo. Tanto quanto me lembro Multicast deve trabalhar "fora da caixa", mas vale a pena verificar com o seu sysadmin local (nosso sugeriu uma emenda ao multicastGroupAddress).

Nós finalmente bateu todos os tipos de problemas no Solaris e acabou abandonando multicast para descoberta de pares manual de vez.

Finalmente, em termos de depuração, usando jconsole para monitorar valores de cache provou ser a melhor maneira de fazê-lo. não ter que recorrer a packet sniffing. :-)

Respondeu 27/08/2009 em 11:32
fonte usuário

votos
2

Certifique-se de seus servidores têm multicast habilitado para começar. Não tenho certeza em qual plataforma você está executando.

Respondeu 19/05/2009 em 21:34
fonte usuário

votos
1

Pode ajudar alguém a implementação de multicasting. Tenho verificado executando meu aplicativo no meu tomcat local a partir de eclipse e executando o mesmo aplicativo no tomcat local a partir de eclipse do meu colega.

Correndo abaixo em sua máquina Windows irá mostrar-lhe algumas ips e garante que multi-carcaça deve funcionar.

netsh interface ip show joins

o atributo multicastGroupAddress = 230.0.0.1 significa que seu aplicativo quiser usar este IP, isto pode ser mudado, mas garantir a utilizar apenas a Classe D IP Range. Depois de executar o aplicativo, você pode ver isso 230.0.0.1 IP Também em como abaixo digite descrição da imagem aqui

Para ver todas as magias, garantir a permitir registros corretamente.

    <logger name="net.sf.ehcache">  <level value="debug"/></logger>
   <logger name="net.sf.ehcache.distribution.RMICachePeer" level="debug" />

Certifique-se de ter abaixo lisners em seu cache padrão ou configuração de cache necessário

         <cacheManagerPeerProviderFactory
       class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
       properties="port=40003, peerDiscovery=automatic,
                   multicastGroupAddress=230.0.0.1,
                   multicastGroupPort=4446,
                   timeToLive=32"/>
    <cacheManagerPeerListenerFactory 
        class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
        properties="port=40001, socketTimeoutMillis=3000" />
    <cacheManagerPeerListenerFactory 
        class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
        properties="port=40002, socketTimeoutMillis=3000"/>
 <defaultCache
     eternal="false"
     timeToIdleSeconds="300"
     timeToLiveSeconds="300"
     diskExpiryThreadIntervalSeconds="305"
     memoryStoreEvictionPolicy="LRU"
     statistics="true">
     <persistence strategy="localTempSwap"/>
     <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
     <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"/>
        </defaultCache>

Depois de implantar o aplicativo que você pode ver abaixo em toras

13:31:27.073  DEBUG n.s.e.d.PayloadUtil assembleUrlList - Cache peers for this CacheManager to be advertised:......
15:15:14.110  DEBUG net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver processPayload rmiUrls received....(YOur configured caches with Ips)

Que será útil se você precisa configurar o manual do processo de descoberta de pares.

Respondeu 15/08/2017 em 15:21
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more