Couchbase Website
  • Produtos
        • Plataforma

          • Couchbase CapellaBanco de dados como serviço
        • Autogerenciado

          • Servidor CouchbaseNo local, em várias nuvens, na comunidade
        • Serviços

          • Serviços de IA Desenvolvimento de agentes habilitados para IA e
            implantação
          • Pesquisa Texto completo, híbrido, geoespacial, vetorial
          • CelularNoSQL incorporado, sincronização entre nuvem e borda, off-line primeiro
          • AnálisesAnálise de múltiplas fontes em tempo real
        • Recursos

          • Arquitetura na memóriaVelocidade, escala, disponibilidade
          • Criar aplicativos flexíveisJSON, SQL++, multiuso
          • Automação na nuvemOperador de Kubernetes
          • Ferramentas de desenvolvimentoSDKs, integrações, Capella iQ
          • Servidor de borda do CouchbasePara ambientes com recursos limitados
        • Por que o Couchbase?

          Os desenvolvedores e as empresas escolhem o Couchbase para seus aplicativos de missão crítica.

          Veja por quê

          Migrar para o Capella

          Principais motivos para atualizar do Server Enterprise Edition para o Couchbase Capella

          Veja por quê
  • Soluções
        • Por caso de uso

          • Inteligência Artificial
          • Cache e gerenciamento de sessões
          • Catálogo de produtos adaptável
          • Personalização e perfis inteligentes
          • Serviços de campo adaptativos
          • Análise em tempo real para IA
          • Veja todos os casos de uso
        • Por setor

          • Serviços financeiros
          • Jogos
          • Alta tecnologia
          • Entretenimento
          • Varejo
          • Viagens e hospitalidade
          • Ver todos os setores
        • Por necessidade de aplicativo

          • Desempenho do aplicativo
          • Cargas de trabalho distribuídas
          • Flexibilidade de aplicativos
          • Móvel, IoT e borda
          • Produtividade do desenvolvedor
          • Alto custo das operações
          • Veja todas as necessidades de aplicativos
  • Recursos
        • Documentos populares

          • Visão geral da Capella
          • Visão geral do servidor
          • Visão geral do Mobile & Edge
          • Conexão de aplicativos (SDKs)
          • Tutoriais e amostras
          • Página inicial dos documentos
        • Por função de desenvolvedor

          • Desenvolvedor de IA
          • Backend
          • Pilha completa
          • Celular
          • Operações / DBA
          • Página inicial dos desenvolvedores
        • Início rápido

          • Blogs
          • Webcasts e eventos
          • Vídeos e apresentações
          • Documentos técnicos
          • Treinamento e certificação
          • Forums
        • Centro de recursos

          Veja todos os recursos do Couchbase em um local conveniente

          Dê uma olhada
  • Empresa
        • Sobre

          • Sobre nós
          • Liderança
          • Clientes
          • Blog
          • Sala de Imprensa
          • Carreiras
        • Parcerias

          • Encontre um parceiro
          • Torne-se um parceiro
          • Registrar uma oferta
        • Nossos serviços

          • Serviços profissionais
          • Suporte empresarial
        • Parceiros: Registrar um negócio

          Pronto para registrar um negócio com o Couchbase?

          Informe-nos os detalhes do seu parceiro e mais informações sobre o cliente potencial que está registrando.

          Comece aqui
          Marriott

          A Marriott escolheu o Couchbase em vez do MongoDB e do Cassandra para oferecer uma experiência personalizada e confiável ao cliente.

          Saiba mais
  • Preços
  • Experimente gratuitamente
  • Entrar
  • Portuguese
    • Japanese
    • Italian
    • German
    • French
    • Spanish
    • Korean
    • English
  • search
Couchbase Website

Clustering de banco de dados

O clustering de banco de dados envolve vários servidores de banco de dados trabalhando juntos para melhorar o desempenho

  • Obter alta disponibilidade
  • Saiba mais

O que é clustering de banco de dados?

O clustering de banco de dados agrupa vários servidores de banco de dados (ou nós) em um sistema unificado para melhorar a disponibilidade, a tolerância a falhas e o desempenho. Essa abordagem ajuda a gerenciar os dados distribuindo as cargas de trabalho e mantendo a redundância, garantindo tempo de atividade contínuo e melhor balanceamento de carga entre os nós.

Neste recurso, explicaremos como funciona o clustering de banco de dados e o compararemos com um conceito relacionado: fragmentação.

  • Como funciona o clustering de banco de dados?
  • Clustering de banco de dados vs. sharding
  • Arquitetura de cluster de banco de dados
  • Benefícios do clustering de banco de dados
  • Diretrizes de clustering de banco de dados
  • Como criar um cluster de banco de dados
  • Principais conclusões e recursos adicionais

Como funciona o clustering de banco de dados?

O clustering de banco de dados combina vários servidores, ou nós, para funcionar como um sistema de banco de dados único e unificado. Cada nó do cluster é responsável por uma parte dos dados ou da carga de trabalho, mas, juntos, eles garantem que todo o sistema funcione sem problemas. Essa abordagem distribuída permite melhor desempenho, tolerância a falhas e escalabilidade.

O princípio básico por trás do clustering é a redundância. Em vez de depender de um servidor, os dados são distribuídos em vários nós. Se um nó falhar, outros poderão assumir suas responsabilidades, garantindo a operação contínua. Essa redundância minimiza o tempo de inatividade e a perda de dados, o que torna o clustering especialmente útil para aplicativos que exigem alta disponibilidade de dados. disponibilidade.

Em um cluster típico, os dados e as solicitações são distribuídos entre os nós de duas maneiras:

  • Replicação: Os dados são duplicados em todos os nós. Cada nó contém os mesmos dados, portanto, se um falhar, os outros poderão responder às mesmas consultas sem atraso. Replicação é ideal para operações de leitura pesada, pois vários nós podem servir os mesmos dados simultaneamente, equilibrando a carga.
  • Particionamento: Os dados são divididos em blocos e cada nó armazena apenas uma parte do todo. Esse método, também conhecido como dimensionamento horizontalO particionamento é eficiente para lidar com grandes conjuntos de dados, pois cada nó lida com apenas uma fração do total de dados. O particionamento é normalmente usado para cargas de trabalho de gravação pesada, em que dados específicos são roteados para nós designados.

Comunicação entre nós

Os nós de um cluster se comunicam constantemente entre si, compartilhando dados sobre sua saúde, status e carga de trabalho. Essa coordenação permite que eles equilibrem o tráfego e garantam o desempenho ideal. A colaboração é gerenciada por um sistema de gerenciamento de cluster que monitora e aloca tarefas, como distribuição de consultas, replicação de dados e tratamento de falhas.

Consistência de dados

Um dos principais desafios do clustering é manter a consistência dos dados em todos os nós. Os clusters usam diferentes modelos de consistência, dependendo do projeto do sistema. Esses modelos incluem:

  • Forte consistência: Garante que os nós sempre reflitam os dados mais recentes, mas pode introduzir latência devido à sincronização. O Couchbase, por exemplo, oferece durabilidade opções para aumentar a confiabilidade e, ao mesmo tempo, negociar o aumento da latência (e vice-versa).
  • Eventual consistência: Permite algum atraso na propagação de atualizações, mas prioriza a disponibilidade e a velocidade. É comum em sistemas em que as operações de leitura e gravação ocorrem em velocidades diferentes ou em regiões diferentes. Um exemplo é a replicação entre data centers (XDCR) do Couchbase, que replica todo o conjunto de dados entre os clusters.

Clustering de banco de dados vs. sharding

O clustering e o sharding não são mutuamente exclusivos. Na verdade, as duas técnicas geralmente trabalham juntas para criar um sistema de banco de dados mais robusto, dimensionável e de alto desempenho. Enquanto o clustering se concentra na redundância, na tolerância a falhas e no balanceamento de carga, o sharding enfatiza a escalabilidade ao distribuir os dados entre vários servidores. Abaixo está uma tabela que destaca as principais diferenças entre essas abordagens.

Recurso Agrupamento Fragmentação
Distribuição de dados Replicado ou particionado entre nós Particionado horizontalmente entre shards
Tolerância a falhas Alta, com mecanismos automáticos de failover Limitado, requer recuperação manual ou complexa
Escalabilidade Limitado ao número de nós no cluster Ilimitado, escalonável horizontalmente com a adição de fragmentos
Foco no desempenho Otimizado para cargas de trabalho balanceadas e de leitura intensa Melhor para conjuntos de dados grandes e com muita gravação
Isolamento de dados Baixa, os nós compartilham dados ou particionam cargas de trabalho Alta, cada fragmento opera de forma independente
Redundância de dados Os dados são replicados ou particionados Os dados são divididos em partições separadas
Balanceamento de carga Sim, o tráfego é distribuído entre os nós Não inerentemente, mas pode ser gerenciado por fragmento
Complexidade Configuração mais simples com gerenciamento automatizado Mais complexo, requer gerenciamento personalizado de shards (ou mecanismo automático de sharding)

Clustering sem sharding: Em alguns cenários, o clustering de banco de dados é usado sozinho. Por exemplo, uma empresa com um aplicativo de leitura intensa, como um grande site de comércio eletrônico, pode configurar um cluster de nós replicados. Cada nó tem uma cópia de todo o banco de dados, e as consultas são distribuídas entre os nós para equilibrar a carga. Se um nó falhar, outro poderá assumir rapidamente o controle sem interrupções. Essa configuração é comum em bancos de dados relacionais como MySQL ou PostgreSQL, em que a alta disponibilidade é priorizada e o conjunto de dados ainda é pequeno o suficiente para ser gerenciado sem sharding.

Sharding sem clustering: Por outro lado, o sharding pode ser usado sem clustering em aplicativos que exigem muita gravação ou em sistemas com conjuntos de dados enormes que não cabem em uma única máquina. Uma plataforma de mídia social com milhões de usuários pode fragmentar seu banco de dados por ID de usuário, de modo que cada fragmento contenha um subconjunto de dados do usuário. Nesse caso, cada fragmento opera de forma independente e não há redundância, a menos que sejam implementados mecanismos específicos para lidar com falhas. O MongoDB™, por exemplo, permite o sharding em vários servidores sem a necessidade de clustering, o que o torna escalável, mas com tolerância a falhas incorporada limitada.

Clustering com sharding: Em sistemas de grande escala em que a alta disponibilidade e a escalabilidade são cruciais, o sharding e o clustering costumam ser usados juntos. Essa abordagem híbrida é usada em sistemas como o Couchbase, em que a fragmentação (vBuckets) é combinado com o clustering para criar um sistema altamente dimensionável e tolerante a falhas, reunindo o melhor dos dois mundos.

Arquitetura de cluster de banco de dados

A arquitetura de um cluster de banco de dados define como os dados são armazenados, acessados e gerenciados em vários nós. Há três tipos principais de arquiteturas de cluster de banco de dados: nada compartilhado, disco compartilhado e tudo compartilhado. Essas arquiteturas oferecem diferentes compensações de desempenho, escalabilidade e tolerância a falhas, o que as torna adequadas para diferentes casos de uso.

Arquitetura sem compartilhamento

Em uma arquitetura sem compartilhamento, cada nó do cluster opera de forma independente. Cada nó tem sua própria CPU, memória e armazenamento, e não compartilha nenhum recurso com outros nós. Os dados são particionados entre os nós, de modo que cada um gerencia seu próprio subconjunto dos dados gerais.

  • Não há compartilhamento de recursos: Os nós não compartilham memória ou disco, o que reduz os gargalos.
  • Alta escalabilidade: Novos nós podem ser adicionados ao sistema facilmente, pois não há nenhum recurso central com o qual lidar.
  • Isolamento de falhas: Se um nó falhar, somente os dados gerenciados por esse nó serão afetados. Outros nós continuam a operar normalmente (e outros nós provavelmente terão cópias de réplicas para se recuperar).

Essa arquitetura é ideal para cargas de trabalho que precisam ser dimensionadas horizontalmente, como aplicativos da Web com grandes conjuntos de dados. Sistemas como o Couchbase usam arquiteturas de nada compartilhado, em que os dados são distribuídos entre os nós para melhorar o desempenho e a confiabilidade.

Arquitetura de disco compartilhado

Em uma arquitetura de disco compartilhado, todos os nós compartilham o acesso ao mesmo sistema de armazenamento, mas cada nó tem sua própria CPU e memória. Isso significa que vários nós podem acessar os mesmos dados no disco, o que facilita a consistência dos dados e o gerenciamento centralizado dos dados.

  • Armazenamento compartilhado: Todos os nós acessam o mesmo disco ou sistema de armazenamento.
  • Dados centralizados: Como todos os nós veem os mesmos dados, há menos necessidade de particionamento ou replicação de dados. No entanto, isso também significa que uma falha no disco compartilhado pode fazer com que todo o sistema fique inoperante.
  • Escalabilidade moderada: Essa arquitetura pode ser dimensionada, mas o desempenho pode ser prejudicado pela largura de banda do sistema de armazenamento compartilhado.

As arquiteturas de disco compartilhado são comumente usadas em sistemas como o Oracle, em que vários nós precisam de acesso simultâneo aos mesmos dados.

Arquitetura de tudo compartilhado

Em uma arquitetura de tudo compartilhado, todos os nós compartilham os recursos de armazenamento e memória. Esse modelo garante que todos os dados e a memória estejam acessíveis a todos os nós em um determinado momento. Embora essa arquitetura possa ajudar no balanceamento de carga e na disponibilidade de dados, ela também pode introduzir gargalos de desempenho significativos, pois os nós competem pelo acesso aos recursos compartilhados.

  • Compartilhamento total de recursos: Todos os nós compartilham recursos de armazenamento e memória, o que facilita o gerenciamento de recursos e a consistência dos dados.
  • Balanceamento de carga: Com acesso aos mesmos recursos, as cargas de trabalho podem ser distribuídas uniformemente entre os nós.
  • Escalabilidade limitada: Essa arquitetura não é bem dimensionada porque a adição de mais nós aumenta a contenção por recursos compartilhados.

As arquiteturas de tudo compartilhado são menos comuns atualmente devido às limitações inerentes ao dimensionamento e ao potencial de gargalos, mas o IBM Db2 é o exemplo mais conhecido.

Benefícios do clustering de banco de dados

O clustering de banco de dados oferece várias vantagens importantes, tornando-o uma solução essencial para aplicativos de alta demanda. Essas vantagens incluem:

Alta disponibilidade

O clustering garante alta disponibilidade ao replicar dados em vários nós. Se um nó falhar, os outros assumem automaticamente o controle, minimizando o tempo de inatividade e mantendo o acesso contínuo ao sistema.

Escalabilidade

O clustering oferece escalabilidade horizontal, permitindo que você adicione mais nós à medida que seus dados ou tráfego aumentam. Isso garante um desempenho consistente e a capacidade de lidar com cargas de trabalho crescentes sem gargalos.

Tolerância a falhas e failover

Com a tolerância a falhas, o clustering lida automaticamente com falhas de nós por meio de mecanismos de failover incorporados, garantindo que as solicitações sejam redirecionadas para nós saudáveis e minimizando as interrupções de serviço.

Outros benefícios incluem balanceamento de carga, desempenho aprimorado, redundância de dados e flexibilidade de manutenção.

Diretrizes de clustering de banco de dados

Ao configurar um cluster de banco de dados, certos princípios ajudam a garantir o desempenho e a confiabilidade ideais. Felizmente, muitos deles são gerenciados automaticamente por sistemas criados para clustering, como o Couchbase, o que simplifica grande parte da complexidade.

  • Defina suas metas: Normalmente, seus objetivos serão alta disponibilidade, escalabilidade e desempenho.
  • Escolha a arquitetura correta: Considere sua carga de trabalho (leitura pesada vs. gravação pesada vs. nada compartilhado) ao configurar seu cluster.
  • Tolerância a falhas e failover: A utilização da replicação e da redundância minimiza o tempo de inatividade, tornando as configurações de failover menos preocupantes.
  • Balanceamento de carga: Considere como você distribuirá o tráfego entre os nós para garantir cargas de trabalho uniformes e desempenho ideal.
  • Escalabilidade e capacidade: Planeje com antecedência o crescimento e lembre-se de que o nada compartilhado é a arquitetura mais fácil de expandir.
  • Consistência de dados: Garantir uma consistência forte ou eventual com base nas necessidades do seu aplicativo lhe dá várias opções.
  • Monitoramento e manutenção: O uso de ferramentas no sistema ajuda a monitorar o desempenho e identificar problemas.

O Couchbase, com uma arquitetura sem compartilhamento, é uma opção popular, especialmente para sistemas grandes e em crescimento (por exemplo, LinkedIn e Trendyol), pois ele lida automaticamente com replicação, fragmentação e failover.

Como criar um cluster de banco de dados

A criação de um cluster de banco de dados envolve vários estágios, inclusive a seleção da tecnologia certa, a configuração dos nós e a garantia da comunicação adequada entre eles. Veja a seguir um resumo das principais etapas envolvidas:

Selecione o software do banco de dados: Primeiro, escolher um sistema de banco de dados que ofereça suporte a clustering. Bancos de dados populares, como o Couchbase, oferecem recursos de clustering incorporados. A escolha do software depende de sua carga de trabalho, modelo de dadose necessidades de escalabilidade.

Nós de provisionamento: Em um cluster de banco de dados, os nós são os servidores individuais que trabalham juntos. Esses nós devem ser provisionados com os recursos de hardware adequados, como CPU, memória e armazenamento. Eles podem ser máquinas físicas ou servidores virtuais, dependendo de sua infraestrutura.

Configurar a rede: Para garantir uma comunicação tranquila entre os nós, você precisa configurar a rede. Esse processo inclui a configuração de endereços IP e sub-redes e a garantia de que os nós possam se comunicar por canais seguros. Conexões de baixa latência e alta largura de banda são essenciais para o desempenho.

Configure a replicação de dados: Um dos principais componentes do clustering é a replicação, em que os dados são copiados em vários nós para garantir a disponibilidade em caso de falha. Configure o mecanismo de replicação, garantindo que os dados sejam sincronizados de forma consistente entre os nós. Isso também aumenta a tolerância a falhas.

Balanceamento de carga: Um balanceador de carga geralmente é implementado para distribuir o tráfego uniformemente pelo cluster, a menos que o cluster do banco de dados tenha esse recurso incorporado. O balanceador de carga direciona as consultas de entrada para diferentes nós com base na carga e na disponibilidade, evitando que um único nó fique sobrecarregado.

Configurar ferramentas de gerenciamento de cluster: O software de gerenciamento de cluster ajuda a monitorar a integridade do cluster, fornecendo insights sobre o desempenho dos nós e alertando-o sobre falhas. Ferramentas como Kubernetes são frequentemente usados para gerenciar e abstrair esses detalhes.

Teste de tolerância a falhas: Após a configuração inicial, é importante testar a capacidade do cluster de lidar com falhas de nós. Os testes garantem que os nós restantes ainda possam gerenciar a carga de trabalho sem causar tempo de inatividade ou perda de dados se um nó fica off-line.

Monitorar e manter: Quando o cluster estiver operacional, o monitoramento é fundamental. Fique de olho nas métricas de desempenho, no atraso da replicação de dados e na integridade de cada nó. Atualizações e patches regulares devem ser aplicados para manter o cluster seguro e eficiente.

A criação de um cluster de banco de dados envolve várias etapas técnicas, desde a configuração da rede até a configuração da replicação e do balanceamento de carga. O planejamento e o gerenciamento adequados garantem que o cluster seja robusto, dimensionável e possa atender aos requisitos de alta disponibilidade.

Principais conclusões e recursos adicionais

O clustering sozinho é ideal para alta disponibilidade, tolerância a falhas e equilíbrio de cargas de trabalho de leitura pesada. A fragmentação sozinha é melhor para lidar com conjuntos de dados enormes e dimensionar cargas de trabalho de gravação pesada, mas não tem a redundância que o clustering oferece. Quando combinado, o clustering com sharding permite escalabilidade maciça e alta tolerância a falhas, o que o torna a arquitetura ideal para aplicativos de grande escala que lidam com enormes cargas de dados, mantendo a disponibilidade e o desempenho.

Ao compreender os pontos fortes do clustering e do sharding e como eles podem se complementar, você poderá projetar melhor um sistema de banco de dados que atenda às suas necessidades específicas, seja de alta disponibilidade, escalabilidade ou ambas.

Deseja criar você mesmo um cluster de banco de dados? A arquitetura sem compartilhamento do Couchbase facilita isso. Aqui estão algumas opções, dependendo do nível de controle que deseja exercer sobre o cluster:

  • Couchbase Capella™: Um banco de dados como serviço (DBaaS) que oferece uma quantidade moderada de controle, mas cuida de muitos detalhes para você. Você pode começar a usar o nível gratuito agora mesmo.
  • Operador autônomo do Couchbase: Uma API do Kubernetes projetada para criar e gerenciar clusters do Couchbase em contêineres. Ela oferece um alto nível de controle e pode ser implantada em qualquer cluster do Kubernetes, incluindo Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Red Hat OpenShift e Rancher Kubernetes Engine (RKE).
  • Servidor Couchbase: Servidor Couchbase (Enterprise ou Community Edition) oferece controle total sobre o seu cluster. O dimensionamento do Couchbase ainda é muito fácilMas, com o Server, você precisa gerenciar a infraestrutura (rede, VMs, servidores) por conta própria.

Para saber mais sobre os conceitos relacionados ao clustering do Couchbase, você pode visitar nosso blog e centro de conceitos.

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Desenvolver agora
Experimente Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Use gratuitamente
Couchbase para ISVs

Crie aplicativos avançados com menos complexidade e custo.

Saiba mais
Popup Image
Couchbase

3155 Olsen Drive,
Suite 150, San Jose,
CA 95117, Estados Unidos

EMPRESA

  • Sobre
  • Liderança
  • Notícias e imprensa
  • Carreiras
  • Eventos
  • Legal
  • Entre em contato conosco

SUPORTE

  • Portal do desenvolvedor
  • Documentação
  • Fóruns
  • Serviços profissionais
  • Login de suporte
  • Política de suporte
  • Treinamento

LINKS RÁPIDOS

  • Blog
  • Downloads
  • Treinamento on-line
  • Recursos
  • Por que NoSQL
  • Preços

SIGA-NOS

  • Twitter
  • LinkedIn
  • YouTube
  • Facebook
  • GitHub
  • Estouro de pilha
  • Discórdia
© 2025 Couchbase, Inc. Couchbase e o logotipo do Couchbase são marcas registradas da Couchbase, Inc. Todas as marcas registradas de terceiros Todas as marcas comerciais de terceiros (incluindo logotipos e ícones) mencionadas pela Couchbase, Inc. permanecem como propriedade de seus respectivos proprietários.
  • Termos de uso
  • Política de privacidade
  • Política de cookies
  • Política de suporte
  • Não vender minhas informações pessoais
  • Centro de preferências de marketing