Consul - Introdução
Consul é uma ferramenta baseada em Hashicorp para descobrir e configurar uma variedade de serviços diferentes em sua infraestrutura. É baseado e construído em Golang. Uma das principais razões para construir o Consul era manter os serviços presentes nos sistemas distribuídos. Algumas das características importantes que a Consul oferece são as seguintes.
Service Discovery - Usando DNS ou HTTP, os aplicativos podem encontrar facilmente os serviços dos quais dependem.
Health Check Status- Ele pode fornecer qualquer número de verificações de saúde. É usado pelos componentes de descoberta de serviço para rotear o tráfego de hosts não íntegros.
Key/Value Store - Ele pode usar o armazenamento de chave / valor hierárquico do Consul para qualquer número de finalidades, incluindo configuração dinâmica, sinalização de recursos, coordenação, eleição de líder, etc.
Multi Datacenter Deployment- O Consul oferece suporte a vários datacenters. É usado para construir camadas adicionais de abstração para crescer em várias regiões.
Web UI - O Consul oferece aos seus usuários uma bela interface web com a qual pode ser fácil de usar e gerenciar todos os recursos do consul.
Descoberta de serviço
A descoberta de serviços é uma das características mais importantes do Consul. É definido como a detecção de diferentes serviços e protocolos de rede através dos quais um serviço é encontrado. O uso da descoberta de serviço é uma bênção para sistemas distribuídos. Este é um dos principais problemas enfrentados pelas grandes indústrias de hoje com o avanço dos sistemas distribuídos em seu ambiente.
Comparação com Etcd e Zookeeper
Quando olhamos para outras ferramentas de descoberta de serviço neste domínio, temos duas opções populares. Alguns participantes importantes da indústria de software já o utilizaram no passado. Essas ferramentas sãoEtcd e Zookeeper.
Vamos considerar a tabela a seguir para comparar diferentes aspectos de cada ferramenta. Também entenderemos o que cada um deles utiliza internamente.
Propriedades | Cônsul | Etcd | Funcionário do zoológico |
---|---|---|---|
Interface de usuário | acessível |
|
|
RPC | acessível | acessível |
|
Exame de saúde | API HTTP | API HTTP | TCP |
Valor chave | 3 modos de consistência | Boa Consistência | Consistência forte |
Sistema de Token | acessível |
|
|
Língua | Golang | Golang | Java |
Cônsul - Membros e Agentes
Os membros do cônsul podem ser definidos como a lista de diferentes agentes e modos de servidor usando os quais um cluster cônsul é implantado. O Consul nos fornece um recurso de linha de comando com o qual podemos listar facilmente todos os agentes associados ao consul.
O agente da Consul é o processo central da Consul. O agente mantém informações de associação, registra serviços, executa verificações, responde a consultas, etc. Qualquer agente pode ser executado em um dos dois modos:Client ou Server. Esses dois modos podem ser usados de acordo com sua função, conforme decidido ao usar o cônsul. O agente cônsul nos ajuda fornecendo informações, que estão listadas abaixo.
Node name - Este é o nome do host da máquina.
Datacenter- O datacenter no qual o agente está configurado para ser executado. Cada nó deve ser configurado para relatar a seu datacenter.
Server- Indica se o agente está rodando em modo servidor ou cliente. Os nós do servidor participam do quorum de consenso, armazenando o estado do cluster e lidando com as consultas.
Client Addr- É o endereço usado para interfaces de cliente pelo agente. Inclui as portas para as interfaces HTTP, DNS e RPC.
Cluster Addr- É o endereço e o conjunto de portas usadas para comunicação entre Agentes Consul em um cluster. Este endereço deve ser acessado por todos os outros nós.
No próximo capítulo, vamos entender a arquitetura da Consul.