Integração de Descoberta e Registro de Serviços com o API7 Enterprise
June 13, 2024
Com a adoção generalizada da arquitetura de microservices, as relações entre os serviços estão se tornando cada vez mais complexas. Nesse contexto, a descoberta de serviços é particularmente importante, pois permite que os serviços se localizem e interajam dinamicamente entre si.
O API7 Enterprise, como uma plataforma de gerenciamento de API rica em recursos, pode integrar-se perfeitamente com registros de descoberta de serviços para alcançar a descoberta automática e o roteamento inteligente de serviços upstream.
O Que É Descoberta de Serviços?
A descoberta de serviços é um mecanismo para detectar automaticamente instâncias de serviços e seus endereços dentro de uma rede, de modo que outros serviços ou clientes possam encontrá-los e se comunicar com eles. Em sistemas distribuídos modernos e na arquitetura de microservices, a descoberta de serviços é um componente crucial, pois permite a localização e conexão dinâmica a serviços sem a necessidade de codificar manualmente os endereços dos serviços ou atualizar configurações manualmente.
As Funções da Descoberta de Serviços
-
Localização Dinâmica de Serviços: Na arquitetura de microservices, as instâncias de serviços podem iniciar, parar, migrar ou escalar dinamicamente. A descoberta de serviços pode rastrear automaticamente essas mudanças, garantindo que os clientes sempre encontrem instâncias de serviços disponíveis.
-
Tolerância a Falhas e Failover: Quando uma instância de serviço falha, a descoberta de serviços pode detectar sua indisponibilidade e direcionar os clientes a se conectarem a outras instâncias saudáveis, permitindo failover e alta disponibilidade.
-
Configuração e Gerenciamento Simplificados: Através da descoberta de serviços, os desenvolvedores não precisam configurar e gerenciar manualmente os endereços de rede de cada serviço. Isso reduz a possibilidade de erros de configuração e simplifica a implantação e o gerenciamento de serviços.
Descoberta de Serviços no API7 Enterprise
A descoberta de serviços é frequentemente usada em conjunto com um balanceador de carga ou gateway de API para garantir que as solicitações sejam distribuídas uniformemente entre várias instâncias de serviços, melhorando assim a taxa de transferência e o tempo de resposta do sistema. Em sistemas distribuídos, as instâncias de serviços podem se tornar indisponíveis por vários motivos, e o mecanismo de descoberta de serviços pode identificar rapidamente esses problemas e redirecionar as solicitações para outras instâncias de serviços saudáveis através do balanceador de carga, garantindo a alta disponibilidade dos serviços.
No API7 Enterprise, o conceito de "upstream" expande ainda mais essa flexibilidade. Ao configurar o upstream como um registro de serviços, o gateway de API pode recuperar dinamicamente a lista de instâncias de serviços de backend e ajustar a estratégia de distribuição de solicitações conforme necessário. Isso significa que, mesmo quando o número ou o estado das instâncias de serviços mudar, o gateway de API pode se adaptar rapidamente, sem a necessidade de atualizações manuais de configuração ou reinicializações de serviços.
A colaboração entre a descoberta de serviços e o gateway de API fornece capacidades poderosas de gerenciamento dinâmico de serviços e controle de tráfego para a arquitetura de microservices. O API7 Enterprise aprimorou e estendeu ainda mais esse recurso, permitindo que o sistema seja mais flexível e eficiente ao lidar com vários cenários e requisitos complexos. Além disso, com a adoção generalizada de tecnologias nativas da nuvem e de conteinerização, a implantação e o dimensionamento de instâncias de serviços se tornaram mais fáceis e rápidos.
Como Configurar a Descoberta de Serviços no API7 Enterprise?
Adicionando Registros de Serviços
No grupo de gateways, vá para a página de registro de serviços, clique no botão "Adicionar Conexão de Registro de Serviços" e você verá o formulário de conexão.

No formulário, precisamos preencher as informações básicas e as configurações de conexão relevantes para o registro de serviços. Atualmente, o API7 Enterprise suporta a integração de registros de serviços Kubernetes e Nacos. Aqui, usaremos o Nacos como exemplo. Selecione "Nacos" como o tipo de descoberta e, em seguida, especifique como o API7 Enterprise obterá o token para autenticação, o que pode ser feito através de conta/senha, chave de acesso e chave secreta, ou inserindo diretamente o valor do token.

Além das configurações básicas de autenticação, o API7 Enterprise também oferece opções de configuração mais refinadas, como tempo limite de conexão e tempo limite de leitura/escrita. Essas configurações podem ser ajustadas com flexibilidade com base nas necessidades reais, evitando efetivamente solicitações pendentes por longos períodos devido a conexões de rede instáveis e reduzindo o uso ineficiente de recursos do sistema.
Após criar o registro de serviços, o novo item de conexão aparecerá imediatamente na lista, mas o status da conexão pode ser marcado como saudável após a verificação do sistema. Através desse item de conexão, os usuários podem verificar convenientemente o status da descoberta de serviços e as configurações relevantes do registro de serviços.
Configurando a Descoberta de Serviços no Upstream
O registro de serviços é um recurso que pertence ao grupo de gateways. No grupo de gateways onde o registro de serviços foi criado, qualquer serviço publicado nesse grupo de gateways pode usar a configuração desse registro de serviços. Podemos configurar o upstream durante o processo de publicação do serviço ou em um serviço já publicado.
Selecione um modelo de serviço, publique-o no grupo de gateways que acabou de adicionar o registro de serviços, escolha usar a descoberta de serviços como o upstream, então selecione o registro de serviços Nacos que acabamos de criar e escolha o namespace, grupo e instância específicos.
Após a publicação do serviço, você pode visualizar o registro de serviços atualmente configurado na página de upstream dos detalhes do serviço e fazer alterações na configuração da descoberta de serviços a qualquer momento.
Visualizar Serviços Associados, Atualizar e Excluir Configurações de Conexão
Na lista de registros de serviços, através do menu "Mais" à direita, você pode gerenciar convenientemente as configurações de conexão, visualizar o histórico de conexões, rastrear o uso do serviço ou excluir as configurações de conexão que não são mais necessárias.

Os "Serviços Associados" mostram claramente quais serviços alteraram suas configurações de descoberta de serviços, permitindo-nos avaliar o impacto potencial antes de fazer qualquer alteração de configuração, evitando efetivamente riscos operacionais.

Observe que a atualização das configurações de conexão do registro de serviços afetará todos os serviços upstream que usam esse registro. Se já houver serviços upstream usando-o, você não poderá alterar o tipo de descoberta do registro ou excluir diretamente a conexão. Você precisará ajustar manualmente as configurações dos serviços upstream para usar outros registros ou nós primeiro e, em seguida, realizar a operação de exclusão.

Conclusão
Exploramos o conceito detalhado de descoberta de serviços, seu papel e sua aplicação no API7 Enterprise. Através da descoberta de serviços, a arquitetura de microservices pode gerenciar e invocar serviços dinamicamente, melhorando significativamente a flexibilidade e a disponibilidade do sistema.
À medida que a arquitetura de microservices continua a evoluir, a importância da descoberta de serviços está se tornando cada vez mais evidente. Esperamos que a descoberta de serviços se concentre mais em inteligência, automação e tolerância a falhas no futuro.
O API7 Enterprise explorará a integração com mais tipos de registros de serviços e combinará verificações de saúde para alcançar uma alta disponibilidade ainda mais forte, ajudando as empresas a construir arquiteturas de microservices mais robustas e eficientes.