O que você recomendaria para um grande escala da tecnologia de grade de dados Java: terracota, GigaSpaces, coerência, etc? [fechadas]

StackOverflow https://stackoverflow.com/questions/539985

Pergunta

Eu estive lendo sobre os chamados soluções "grade de dados" para a plataforma Java incluindo Terracotta, GigaSpaces e coerência. Eu queria saber se alguém tem experiência no mundo real trabalhando qualquer uma dessas ferramentas e poderia compartilhar sua experiência. Eu também estou muito curioso para saber o que escala de pessoas de implantação têm trabalhado com: estamos falando 2-4 clusters de nó ou você trabalhou com qualquer coisa significativamente maior do que

Eu me sinto atraído por Terracotta por causa de sua "drop in" suporte para Hibernate e Spring, ambas as quais usamos fortemente. Eu também gosto da idéia de como ele decora bytecode com base na configuração e não requer que você programa contra a "API grid." Eu não estou ciente de quaisquer vantagens para ferramentas que utilizam a abordagem de uma API explícita, mas gostaria de ouvir sobre eles se eles de fato existem. :)

Eu também passei tempo lendo sobre o memcached, mas estou mais interessado em retorno ouvir sobre estas três soluções específicas. Eu seria curioso para ouvir como eles medir-se contra o memcached em caso alguém usou ambos.

Foi útil?

Solução

Nós tivemos 50 servidores que executam uma aplicação de webservice e todos esses servidores foram carga balanceada usando BigIP. A exigência era para armazenar em cache cada estado do usuário de modo que os estados subsequentes não fazer o mesmo processamento de novo e obter os dados do estado anterior. Desta forma, o cliente do webservice não precisa manter o estado.

Nós usamos Terracotta para armazenar em cache os estados e nunca enfrentou qualquer problema de desempenho. Em horários de pico número de aplicação pedido está recebendo é de 100 por segundo.

Outras dicas

Você pode querer verificar para fora Hazelcast também. Hazelcast é uma transacional de código aberto, distribuída / implementação particionado de fila, tópico, mapa, conjunto, lista, bloqueio e serviço executor. É super fácil de trabalhar; basta adicionar hazelcast.jar em seu classpath e iniciar a codificação. É necessário quase nenhuma configuração.

Hazelcast é lançado sob a licença Apache e suporte classe empresarial também está disponível. Código está hospedado em Google Code .

A biblioteca você escolhe realmente depende da sua aplicação e que você está tentando alcançar.

Eu trabalhei para uma loja que costumava Coerência para fornecer escalabilidade (e redundância, mais ou menos) para suas aplicações web. Descobrimos que você tem que ter cerca de 4-5 nós para começar a receber todos os benefícios de Coerência (2 ou 3 nós potencialmente reduz o desempenho). Acredito docs da Oracle diz que precisa de lotes (30+) nós para realmente obter um benefício com coerência. Se você vai com Coerência, certifique-se de obter o seu hardware configurado corretamente - é muito sensível à latência.

Eu, pessoalmente, ficaria longe de um material "drop-in". Eles podem dar-lhe algo para começar, mas você eventualmente vai correr em problemas de sincronização ou de desempenho e terá de começar a escrever código específico para a sua camada de rede de qualquer maneira. Basicamente, você sabe que sua aplicação melhor do que a biblioteca, e será capaz de descobrir quais itens precisam estar em cache, quanto tempo eles precisam para viver, como seu aplicativo será usado, etc.

Eu não tenho bastante experiência com estas tecnologias, mas acho Apache Hadoop é provou ser escalável e confiável. Yahoo correu em 10.000 aglomerado núcleo Linux .

É baseado no Google MapReduce algoritmo.

Este artigo descreve MapReduce e por que você deve se preocupar com isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top