Antecedentes de autoproteção
Primeiro de tudo, precisamos entender sobre o Centro de Registro Eureka que todos os nós em Eureka são iguais e não há conceito de papéis em ZK. Mesmo que os nós N-1 sejam perdidos, isso não afetará a operação normal de outros nós.
Por padrão, se o servidor Eureka não receber um batimento cardíaco de uma instância de microsserviço dentro de um determinado tempo (padrão de 90 segundos), o servidor Eureka removerá a instância. No entanto, quando ocorre uma falha de partição de rede, o microsserviço não pode se comunicar normalmente com o servidor Eureka, e o próprio microsserviço está sendo executado normalmente. Esse microsserviço não deve ser removido neste momento, portanto um mecanismo de autoproteção é introduzido.
Mecanismo de autoproteção
Definição oficial de mecanismo de autoproteção: https://github.com/netflix/eureka/wiki/understanding-eureka-teer-to-teer-comunication
O modo de autoproteção é uma medida de proteção de segurança para flutuações anormais de rede. O uso do modo de autoproteção pode fazer com que o cluster Eureka funcione de maneira mais robusta e estável.
O mecanismo de trabalho do mecanismo de autoproteção é que, se mais de 85% dos nós do cliente não tiverem batimentos cardíacos normais em 15 minutos, Eureka acredita que o cliente e o registro têm uma falha de rede, e o servidor Eureka entra automaticamente no mecanismo de autoproteção. Neste momento, ocorrerão as seguintes situações:
1. O Servidor Eureka não remove mais os serviços que devem expirar porque não recebem um batimento cardíaco há muito tempo. /
2. O servidor Eureka ainda pode aceitar solicitações de registro e consulta para novos serviços, mas não será sincronizado com outros nós para garantir que o nó atual ainda esteja disponível. /
3. Quando a rede estiver estável, as novas informações de registro do Servidor Eureka serão sincronizadas com outros nós.
Portanto, o servidor Eureka pode lidar com a situação em que alguns nós são perdidos devido à falha da rede e não farão com que metade deles fique paralisada como o ZK.
Interruptor de autoproteção
Mecanismo de autoproteção Eureka, fiel a ativar/false configurando eureka.server.enable-se-preservação para desativar o mecanismo de autoproteção. O padrão está ligado. Recomenda -se abrir essa configuração no ambiente de produção.
Configuração do ambiente de desenvolvimento
Se você deseja remover automaticamente a falha de serviço no ambiente de desenvolvimento, só precisará modificar a seguinte configuração.
1. O Centro de Registro fecha o mecanismo de autoproteção e modifica o tempo para verificar o serviço inválido.
Eureka: Servidor: Ativar-se-Preservação: FALSO DE EVIÇÃO FALSO INTERVAL-TIMER-MS: 3000
2. As modificações de microsserviço reduzem o tempo de batimento cardíaco.
# Padrão de 90 segundos de arrendamento-expiração em segundos: 10# padrão 30 segundos de arrendamento de renovação-renovação em segundos: 3
A configuração acima é recomendada para usar a configuração de tempo padrão no ambiente de produção. Espero que seja útil para o aprendizado de todos, e espero que todos apoiem mais o wulin.com.