Como reiniciar roteadores e processadores de mensagens sem impacto no tráfego

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Este documento explica como reiniciar roteadores e processadores de mensagens (MPs) sem afetar tráfego de API recebido. Talvez seja necessário reiniciar os roteadores e MPs em determinadas circunstâncias. Confira alguns exemplos:

  • Quando um keystore que é referenciado diretamente no host virtual, no servidor de destino ou no endpoint de destino é atualizado sem usar referências.
  • Quando os proxies de API são parcialmente implantados em alguns MPs.

Antes de começar

Se você não conhece os roteadores e processadores de mensagens, leia a visão geral do Edge para nuvem privada.

Reinicialização contínua de roteadores sem impacto no tráfego

Esta seção descreve as etapas usadas para reiniciar roteadores sem afetar o tráfego de API recebido.

  1. Faça login no roteador que precisa ser reiniciado.
  2. Bloqueie a porta de verificação de integridade no roteador usando o seguinte comando. Isso garante que o roteador seja considerado não íntegro e que nenhum tráfego seja encaminhado a ele.
    sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
        
  3. Aguarde dois minutos para garantir que todo o tráfego em trânsito seja processado sem problemas antes de reiniciar o roteador. Para fazer isso, execute o comando sleep da seguinte maneira:
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  4. Interrompa o serviço do Apigee Monit da seguinte maneira:
    apigee-service apigee-monit stop
        
  5. Interrompa o serviço do roteador da Apigee da seguinte maneira:
    apigee-service edge-router stop
        
  6. Inicie o serviço do roteador da Apigee da seguinte maneira:
    apigee-service edge-router start
        
  7. Aguarde até que o serviço do roteador da Apigee seja iniciado e esteja pronto para processar o tráfego recebido usando o seguinte comando:
    apigee-service edge-router wait_for_ready
        
  8. Inicie o serviço do Apigee Monit da seguinte maneira:
    apigee-service apigee-monit start
        
  9. Limpe as tabelas de IP para desbloquear a porta de verificação de integridade 15999 e permita que o roteador processe o tráfego novamente executando os seguintes comandos:
    sudo iptables -F
    sudo iptables -L
        
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
for i in {001..120}; do sleep 1; printf "\r ${i}"; done
apigee-service apigee-monit stop
apigee-service edge-router stop
apigee-service edge-router start
apigee-service edge-router wait_for_ready
apigee-service apigee-monit start
sudo iptables -F
sudo iptables -L

Reinicialização contínua de processadores de mensagens sem impacto no tráfego

Esta seção descreve as etapas usadas para reiniciar processadores de mensagens (MPs) sem afetar o tráfego de API recebido.

  1. Faça login no processador de mensagens que precisa ser reiniciado.
  2. Identifique a porta de verificação de integridade do processador de mensagens usando o seguinte comando:
    curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
        
  3. Bloqueie a porta de verificação de integridade (identificada na etapa 2) no processador de mensagens. Isso garante que o processador de mensagens seja considerado não íntegro e que nenhum tráfego será encaminhado a este processador de mensagens.
    sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
        

    Em que port # é o número da porta retornado pelo comando executado na etapa 2.

  4. Aguarde dois minutos para garantir que todo o tráfego em trânsito seja processado sem problemas antes de reiniciar o processador de mensagens. Para fazer isso, execute o comando sleep da seguinte maneira:
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  5. Interrompa o serviço do Apigee Monit da seguinte maneira:
    apigee-service apigee-monit stop
        
  6. Interrompa o serviço do processador de mensagens da Apigee da seguinte maneira:
    apigee-service edge-message-processor stop
        
  7. Inicie o serviço do processador de mensagens da Apigee da seguinte maneira:
    apigee-service edge-message-processor start
        
  8. Aguarde até que o serviço do processador de mensagens da Apigee seja iniciado e esteja pronto para processar o tráfego recebido usando o seguinte comando:
    apigee-service edge-message-processor wait_for_ready
        
  9. Inicie o serviço do Apigee Monit da seguinte maneira:
    apigee-service apigee-monit start
        
  10. Limpe as tabelas de IP para desbloquear a porta de verificação de integridade e permita que o processador de mensagens processe o tráfego novamente executando os comandos abaixo:
    sudo iptables -F
    sudo iptables -L
        
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'

sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
for i in {001..120}; do sleep 1; printf "\r ${i}"; done
apigee-service apigee-monit stop
apigee-service edge-message-processor stop
apigee-service edge-message-processor start
apigee-service edge-message-processor wait_for_ready
apigee-service apigee-monit start
sudo iptables -F
sudo iptables -L

Em que port # é o número da porta retornado pelo comando executado na etapa 2.