Integração de Descoberta e Registro de Serviços com o API7 Enterprise

Zhihuang Lin

Zhihuang Lin

June 13, 2024

Products

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

  1. 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.

  2. 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.

  3. 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.

Adicionar Conexão de Registro de Serviços no API7 Enterprise

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.

Adicionar Informações do Registro de Serviços

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.

Adicionar Conexão de 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.

Configurando a Descoberta de Serviços no Upstream

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.

Registro de Serviços na Página de Upstream

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.

Verificação de Status do Registro de Serviços

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.

Serviços Associados

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.

Excluir Conexão de Registro de Serviços Quando Upstreams Não Estão em Uso

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.

Tags: