layout de cassandra de inicialização

1

Temos um site de tráfego relativamente baixo (~ 1 mil pageviews / dia) hospedado em um único servidor e esperamos que ele cresça significativamente nos próximos anos.

Estou pensando em mudar para o Rackspace CloudServer ou EC2 e disparar três nós (todos no CentOS):

  • 2 x Web (Apache) - com loadbalancer
  • 1 x MySQL (para a parte ativada do Wordpress)

A questão é onde colocar Cassandra agora ...

Ele deve ficar em cada nó da Web ou no nó do MySQL?

Meu pensamento agora é colocá-lo em nós da Web. No meu entender, Cassandra tem os benefícios da tolerância a falhas (ou seja, se desmontarmos um nó, o site ainda estará operacional). Então, mesmo com apenas 2 nós, teríamos esse benefício em vez de apenas colocá-lo no nó do MySQL.

Além disso, à medida que aumentamos e adicionamos outro nó, uma instância de cassandra pode acompanhá-lo e o php sempre pode executar suas consultas no host local. Esta é uma boa ideia?

    
por davidkomer 31.07.2012 / 11:21

2 respostas

0

Uma maneira de ver isso seria identificar quais recursos cada aplicativo consome e equilibrar seu uso nos nós.

  • MySQL: memória, E / S de disco, CPU
  • Apache: memória, CPU
  • Cassandra: memória, E / S de disco

A partir da "parte de trás de um pacote fag" acima eu começaria com a premissa Cassandra e Apache share, MySQL sozinho e, em seguida, escolher buracos em & refinar essa abordagem a partir desse ponto de partida.

    
por 03.09.2012 / 11:03
2

Algo para ter em mente, se você executar o Cassandra, você desejará decidir entre manter tudo dentro do JVM e aumentá-lo conforme necessário, ou deixá-lo no JNA e permitir que seu cache de linha fique na memória do sistema.

A melhor prática atualmente é executar com o JNA, porque ele também permite capturar instantâneos sem espaço de memória (já que o JNA permite que o Java defina links físicos), mas quando você começa a compartilhar a memória do sistema não-JVM entre o cassandra e outros aplicações, é provável que você comece a chorar silenciosamente consigo mesmo em momentos desprotegidos. Se você puder, considere executar o cassandra em máquinas separadas.

Mas, se não, você só obtém tolerância a falhas no Cassandra se tiver mais de um nó e o fator de replicação e os níveis de consistência das leituras e gravações forem calculados corretamente. Para um anel de três nós, se sua principal preocupação for tolerância a falhas / disponibilidade de dados, eu definiria o fator de replicação como 3 e seu nível de consistência como UM para leituras e gravações.

    
por 04.09.2012 / 23:48