Clustering e Balanceamento de Carga
o Que são Clustering e Balanceamento de Carga
Cluster de Servidor é um método de transformar vários servidores em um cluster, que é um grupo de servidores, que funciona como um único sistema.
o balanceamento de carga é sobre a distribuição de cargas de trabalho em vários recursos de computação, como computadores, clusters de servidores, links de rede, etc. O balanceamento de carga visa otimizar o uso de recursos, maximizar a taxa de transferência, minimizar o tempo de resposta e evitar a sobrecarga de qualquer recurso único.
um conjunto de réplicas MongoDB é um grupo de processos mongod
que mantêm o mesmo conjunto de dados. Os conjuntos de réplicas fornecem redundância e alta disponibilidade e são a base para todas as implantações de produção.A alta disponibilidade (HA) é uma característica geral de um sistema, que visa garantir um nível acordado de desempenho operacional, geralmente tempo de atividade, por um período superior ao normal.
RESTHeart sempre foi um ajuste muito bom para Microservices e outros estilos de arquitetura distribuída. Ele foi implantado com sucesso com tecnologias de clustering, como AWS ECS e Fargate, Kubernetes e muitos outros.
como funciona
RESTHeart basicamente recebe solicitações HTTP e as transforma em consultas MongoDB, por meio do driver Java. Criar um cluster tem sido uma questão de colocar um balanceador de carga HTTP simples em cima da tecnologia de cluster escolhida, exatamente como faria com qualquer outro Servidor HTTP.
RESTHeart é stateless para todos os recursos, mas para o Gerenciador de Token padrão usado para autenticação de token. Esta implementação que vem com RESTHeart oss mantém os tokens na memória. Como resultado, ele não suporta clustering.
assim, um cluster de nós RESTHeart requer sessões adesivas ao usar autenticação de token, caso contrário, o nó RESTHeart pode receber um token de autenticação criado por outra instância, o que resulta em um erro HTTP 401 “não autorizado”.
como as instâncias RESTHeart não se comunicam diretamente (para evitar etapas de sincronização caras), elas não podem validar tokens de autenticação criados por outras instâncias no mesmo cluster. Para superar essa situação, o balanceador de carga HTTP insere um token de sessão pegajosa em um cookie e, em seguida, manipula o fluxo de comunicação de clientes para instâncias RESTHeart de acordo. As sessões adesivas, do ponto de vista arquitetônico, introduzem um nível de statefulness no sistema e seu tempo limite de expiração deve ser cuidadosamente ajustado.
recursos RESTHeart ee
a compra de um cluster de Licença Comercial RESTHeart pode ser configurada com mais facilidade, sem a necessidade de sessões adesivas. Isso permite uma implantação totalmente sem estado.
com a licença, você pode obter um gerenciador de Token especializado que cria tokens assinados criptograficamente que podem ser reconhecidos por qualquer nó RESTHeart no cluster sem comunicação direta e sincronização entre eles: rápido, simples e seguro.
para obter mais informações, consulte a página de documentação do Gerenciador de Tokens.
em resumo, as etapas de nível superior para uma configuração RESTHeart + MongoDB altamente disponível São:
-
criar um conjunto de réplicas MongoDB;
-
crie um cluster RESTHeart conectado ao conjunto de réplicas do MongoDB;
-
coloque um balanceador de carga HTTP em cima dele.
se você quiser saber mais sobre clustering, balanceamento de carga e alta disponibilidade, entre em contato conosco.
Leave a Reply