Ao hospedar uma instância do Nacos no Microservice Engine (MSE), o MSE gerencia os serviços registrados nessa instância. Este tópico descreve como gerenciar serviços.
Pré-requisitos
Um mecanismo Nacos versão 2.0.3.0 ou posterior disponível. Para mais informações, consulte Atualizar a versão de um mecanismo Nacos.
Um namespace disponível.
Criar um serviço
É possível criar um serviço vazio (sem provedores) no console para definição ou testes. Para exibir o serviço vazio na lista, desative a opção Hide Empty Services.
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Registry > Instances.
Na página Instances, clique em nome da instância.
No painel de navegação à esquerda, escolha Service Management > Services. No canto superior esquerdo da página, selecione um Namespace e clique em Create service.
-
No painel Create service, configure os parâmetros e clique em OK.
Nacos 2.1.2.1 ou posterior
Parâmetro
Descrição
Service Name
Nome do serviço.
Group Name
Nome do grupo ao qual o serviço pertence.
Instance Source
Origem da instância. Valores válidos: Console e SDK.
Protection Threshold
Se Instance Source for definido como Console ou SDK, defina um limiar de proteção. Configure este valor como a proporção do número mínimo de nós necessários para lidar com o tráfego de pico. Por exemplo, se houver 10 nós de instância e forem necessários pelo menos 6 nós para suportar o tráfego de pico, poderá ocorrer falha no sistema caso menos de 6 nós estejam disponíveis. Nesse cenário, defina o limiar de proteção como 0,6.
Nacos 2.0.3.0 a 2.1.2.0
Parâmetro
Descrição
Service Name
Nome do serviço.
Group Name
Nome do grupo ao qual o serviço pertence.
Persistence
Indica se o serviço e suas instâncias são persistentes.
Protection Threshold
Se a proporção de instâncias íntegras em relação ao total de instâncias deste serviço cair abaixo deste limiar, o sistema aciona a proteção para evitar falhas gerais. Valores válidos: 0 a 1. O valor padrão é 0.
Para mais informações, consulte Melhores práticas para alta disponibilidade dos centros de registro e configuração do MSE.
Excluir serviços
A exclusão de uma instância de serviço aplica-se apenas a instâncias com Persistence (instâncias não efêmeras).
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Registry > Instances.
Na página Instances, clique em nome da instância.
No painel de navegação à esquerda, escolha Service Management > Services. No canto superior esquerdo da página, selecione um Namespace. Localize o serviço desejado e, na coluna Actions, clique em More > Delete. Em seguida, clique em OK na caixa de diálogo de confirmação.
Visualizar detalhes do serviço
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Registry > Instances.
Na página Instances, clique em nome da instância.
-
No painel de navegação à esquerda, clique em Service Management > Services e selecione um Namespace no canto superior esquerdo da página.
Neste namespace, visualize informações sobre todos os serviços na instância Nacos, como Service Name, Group Name, Number of providers e Number of Clusters.
Execute as seguintes operações:
-
Para visualizar os detalhes do serviço, clique em nome do serviço desejado.
O topo da página de detalhes do serviço exibe informações básicas, como nome, grupo, status de persistência e número de clusters.
-
Clique em aba Provider para visualizar todas as instâncias provedoras do serviço. Essas instâncias são agrupadas por cluster. Por padrão, os provedores do primeiro cluster são exibidos.
Na seção All Clusters à esquerda, clique em nome de um cluster para alternar para ele.
Na coluna Actions de uma instância específica, edite o peso da instância, coloque-a online ou offline, exclua-a ou visualize seus metadados.
Clique em aba Subscriber para visualizar todas as instâncias cliente que assinam o serviço atual. A lista exibe o endereço IP de cada assinante (IP do cliente), Client Version (por exemplo,
Nacos-Java-Client:v1.4.1) e Application Name.Clique em aba Push track para visualizar informações detalhadas de rastreamento de envio do serviço atual. Isso inclui horário do envio, endereço IP do cliente, nome do serviço, grupo do serviço, número de instâncias de serviço e nomes dos nós.
-
Para excluir um serviço: Na página Services, localize o serviço desejado e, na coluna Actions, clique em Delete. Em seguida, clique em OK na caixa de diálogo de confirmação.
ImportanteSomente serviços vazios podem ser excluídos. Se o serviço não estiver vazio, o botão de exclusão ficará desativado.
Se um serviço permanecer vazio por mais de um minuto, o Nacos o excluirá automaticamente.
-
Adicionar instâncias a um serviço
Adicione novas instâncias (provedores) a qualquer serviço no console para definir instâncias antecipadamente ou para fins de teste.
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Registry > Instances.
Na página Instances, clique em nome da instância.
No painel de navegação à esquerda, escolha Service Management > Services e selecione um Namespace no canto superior esquerdo da página.
Clique em nome do serviço desejado para visualizar seus detalhes.
-
Clique em aba Provider e, em seguida, clique em Create an instance. Na caixa de diálogo Create an instance, configure os parâmetros e clique em OK.
Parâmetro
Descrição
IP
Endereço IP da instância.
Port Number
Porta da instância.
Cluster name
Cluster ao qual a instância pertence. Este parâmetro fornece separação lógica para instâncias no Nacos. O valor padrão é DEFAULT.
Up and down line status
Status inicial online ou offline da instância. O valor padrão é Yes.
Weight
Peso da instância. Valores válidos: 0 a 10000. O valor padrão é 1. O tráfego é distribuído com base no peso. Quanto maior o peso, mais tráfego é roteado para a instância.
Se o peso definido não entrar em vigor, consulte Como corrigir um problema em que alterações de peso de instância não entram em vigor no Nacos.
Colocar uma instância online ou offline
Este recurso atua em instâncias específicas no Nacos.
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Registry > Instances.
Na página Instances, clique em nome da instância.
No painel de navegação à esquerda, escolha Service Management > Services e selecione um Namespace no canto superior esquerdo da página.
Clique em nome do serviço desejado para visualizar seus detalhes.
Clique em aba Provider. Localize a instância desejada e clique em On line ou Offline na coluna Actions. Na caixa de diálogo de confirmação, clique em OK.
Se você chamar a API online imediatamente após o registro do serviço e a instância não ficar online conforme esperado, a sincronização dos dados pode não ter sido concluída. Como melhor prática, aguarde aproximadamente 10 segundos após o registro bem-sucedido do serviço antes de chamar a API online.
Perguntas frequentes
O MSE Nacos suporta a personalização do tempo limite de heartbeat do serviço e dos critérios de offline?
Não. No MSE Registry (Nacos), o tempo limite de heartbeat do serviço e o comportamento de offline são controlados por parâmetros fixos no lado do servidor. Não é possível personalizar a duração do tempo limite ou o número de heartbeats perdidos necessários para colocar uma instância offline.
Por que o MSE carrega apenas uma instância de um serviço Nacos?
A configuração da source de registro de serviço não inclui todas as instâncias Nacos necessárias. Para resolver esse problema, acesse a configuração da source de registro de serviço no console do MSE e adicione manualmente os IDs das instâncias Nacos ausentes (por exemplo, mse-580c5140) para garantir que todas as instâncias Nacos necessárias estejam incluídas no escopo de descoberta de serviço.
Como resolvo o erro "publish nacos metadata failed"?
O conteúdo de metadados do provedor Dubbo excede o limite padrão do Nacos. O parâmetro nacos.naming.metadata.max.total.length tem como padrão 4096 bytes. Utilize um ou ambos os métodos a seguir para resolver esse problema:
Otimize o conteúdo dos metadados para mantê-lo dentro de 8 KB.
Caso a redução dos metadados não seja viável devido a requisitos de negócios, faça login no Alibaba Cloud Quota Center, pesquise por Microservice Engine MSE, localize o item de cota Maximum total length of Nacos service metadata (bytes) e envie uma solicitação de aumento. O valor máximo suportado é 8192 bytes. Após a aprovação da solicitação, a cota entra em vigor automaticamente. Não é necessário reiniciar o serviço.
Como solucionar erros 503 Service Temporarily Unavailable para serviços registrados via Python, Docker ou tecnologias semelhantes?
Realize as seguintes verificações em ordem:
No console do Nacos, confirme se o serviço está registrado e se o endereço IP da instância está correto.
Verifique se o provedor do serviço e o consumidor (gateway) estão no mesmo namespace do Nacos.
Verifique a configuração do health check. Se a autenticação estiver ativada em sua aplicação, o endpoint de health check (por exemplo,
/health) pode retornar401em vez de200, fazendo com que o Nacos marque a instância como não íntegra e pare de rotear tráfego para ela. Ajuste sua lógica de autenticação ou especifique o caminho correto de health check.Verifique se há conectividade de rede entre o gateway e a instância de backend.
No console do MSE, visualize as informações de Push track do serviço para confirmar se o endereço IP correto da instância foi entregue ao consumidor.