Redis vs Zookeeper


25

Parece bobagem comparar esses dois servidores, considerando que eles são feitos para coisas muito diferentes. Mas se você pensar bem, eles podem fazer muitas coisas semelhantes: armazenar dados de configuração, bloqueio distribuído, enfileiramento etc.

Eu tenho uma instância do Redis que estou usando para algumas coisas relacionadas à produção, mas gostaria de fazer uma sincronização simples entre servidores (principalmente alterações na configuração que não exigem push de código e bloqueio simples entre servidores). O que o tratador me dá que os Redis não dariam?


Redis não é (especificamente) para configuração. São produtos bem diferentes.
amigos estão dizendo sobre ren Henrichs

4
Por quê? Estamos usando o PostgreSQL para configuração. O que torna a configuração tão diferente da lógica de negócios?
Dmitry Negoda

Respostas:


26

Usamos Redis e Zookeeper no trabalho, portanto, isso é da primeira mão

Redis é rápido; muito, muito rápido. Também é imediatamente consistente, por isso é bom para conjuntos de dados em movimento rápido. A desvantagem é que, executando em um servidor, se ele falhar, você perderá o acesso de gravação até que outro servidor ocorra. Substituir o servidor é uma operação manual, a menos que você o automatize. (Você ainda pode obter acesso de leitura aos seus dados se configurar uma instância escrava).

O Zookeeper também apresenta consistência imediata. Não é nem metade do que é rápido, mas se recupera automaticamente (sempre que possível) diante de falhas, por isso, se você precisar de acesso contínuo de gravação, mesmo quando seus servidores falharem, convém usar o Zookeeper.

Meu conselho é: use o tratador de zoonos para coordenação: rastreando quais nós estão ativos, eleição do líder entre um grupo etc. Use redis para conjuntos de dados que precisam de gravações rápidas, mas onde a interrupção ocasional não é um desastre. Contadores de visitas para páginas da web, por exemplo.


Atualmente, estou trabalhando em um projeto e estava pensando que o tratador seria o caminho a percorrer. Se você tiver mais alguma informação que possa compartilhar em algum lugar, seria maravilhoso. Estamos lidando com várias trocas de anúncios e acompanhando mais de 4 bilhões de eventos por dia. Estamos procurando reprojetar nossos servidores front-end e procurávamos o tratador para armazenar informações sobre contagens de rastreamento, ponderação mínima etc. Eu posso atestar a velocidade dos redis, mas minha experiência não possui uma estrutura hierárquica que estávamos procurando usar com o tratador. Sua posição mudou nos 3 anos desde 2012?
precisa

@ChrisHinshaw Estou enfrentando o mesmo problema. Considerando o Redis e o Zookeeper para um gerenciador de recursos distribuídos que requer bloqueios e desempenho distribuídos. Você tem algum feedback?
Rafael Saraiva

Estou terminando uma reescrita disso agora. Eu fui com redis devido à velocidade. Houve alguns problemas de desempenho com o tratador, mas não me lembro dos problemas. Estamos armazenando dados de séries temporais com base em métricas e contagens. Estou usando scripts lua para atualizar as contagens de cada um dos períodos para limitar o número de chamadas. Um exemplo é que temos uma chave de hash para solicitações de lances no formato br: 1: 2: 3: 4, em que os números representam uma hierarquia de métricas: agência: anunciante: campanha: anúncio. No hash, os valores são ano: mês: dia: hora: minuto. No meu script lua eu atualizar as contagens para cada
Chris Hinshaw

das fatias de tempo. Portanto, meu script divide y: m: d: h por dois pontos e atualiza os totais de cada fatia. Dessa forma, posso usar um hscan ou buscar uma lista de chaves para qualquer divisão do tempo. O mais importante em redis é criar um modelo hierárquico para as chaves. Em algum momento no futuro, eu gostaria de mudar tudo isso para a rdd's com uma loja de cassandra. Se eu tivesse tempo, implementaria o spark streaming para comparar isso. Eu acho que seria parecido com os redis e dá a flexibilidade de fazer análises.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.