O cluster RabbitMQ é reiniciado a cada 30 minutos

1

Eu tenho um cluster RabbitMQ 3.6.1 de dois nós (no CentOS 6.8 na AWS) que parece reiniciar regularmente a cada 30 minutos. Eu apenas rastreei os logs ( /var/log/rabbitmq/rabbit@<hostname>.log ) em ambas as máquinas para obter uma linha do tempo do que acontece. Eu reorganizei eles nessa lista:

  • 19:22:10 UTC - 10.101.100.173: Stopping RabbitMQ - > %código%
  • 19:22:10 UTC - 10.101.101.48: Stopped RabbitMQ application
  • 19:22:10 UTC - 10.101.100.173: O RabbitMQ começa a ser iniciado novamente
  • 19:22:10 UTC - 10.101.101.48: Observa que 10.101.100.173 está inativo e registra Statistics database started
  • 19:22:50 UTC - 10.101.100.173: O RabbitMQ termina de iniciar, registrando a mensagem iniciando "Inicialização completa do servidor, 6 plugins iniciados."
  • 19:22:50 UTC - 10.101.101.48: Anota que 10.101.100.173 está acima
  • 19:22:54 UTC - 10.101.101.48: Keep [email protected] listeners: the node is already back - > %código%
  • 19:22:54 UTC - 10.101.100.173: Stopping RabbitMQ
  • 19:22:54 UTC - 10.101.100.173: Observa que 10.101.101.47 está inativo e registra Stopped RabbitMQ application
  • 19:23:06 UTC - 10.101.101.48: O RabbitMQ começa a começar de novo
  • 19:23:24 UTC - 10.101.101.48: O RabbitMQ termina de iniciar, registrando a mensagem iniciando "Inicialização completa do servidor, 6 plug-ins iniciados".
  • 19:23:24 UTC - 10.101.100.173: Anota que 10.101.101.48 está agora acima

Depois, não há mais entradas de registro até às 19:52:11 UTC, onde todo o processo se repete. Quando o servidor individual é redefinido, todas as conexões com esse servidor são fechadas.

Eu tenho a porta 5672 com balanceamento de carga entre os dois servidores e posso realmente ver as verificações de falha de integridade retirando os dois servidores do pool do balanceador de carga, para que nenhum cliente possa se conectar. Obviamente, isso me causará problemas.

Alguém tem uma ideia de por que ambos os nós reiniciam regularmente, um após o outro, a cada 30 minutos? Estas são instalações muito simples do vanillia RabbitMQ, agrupadas automaticamente usando SaltStack para parar o aplicativo, cluster com os outros nomes de host e, em seguida, iniciar o aplicativo.

    
por Devin 10.10.2016 / 23:40

1 resposta

2

Eu descobri a resposta para esse problema. Foi causado pela minha configuração de estados de sal. Quando configurei o sistema pela primeira vez, segui o guia de cluster do RabbitMQ para um T, de modo que configurei um estado Salt para parar o aplicativo, cluster com todos os nós do RabbitMQ e reinicie o aplicativo. Ele fez isso independentemente de haver novos nós para cluster ou não.

Acontece que estava reiniciando porque eu tinha definido minha agenda do estado executar estados altos nesses sistemas a cada 30 minutos. Então isso foi parar e iniciar o aplicativo RabbitMQ! Aprendi a testar os rabbitmq_cluster.joined declara que ele verificará primeiro o status do cluster e, em seguida, parará / ingressará / iniciará apenas se host precisar ser adicionado ao cluster.

Mistério solucionado!

    
por 12.10.2016 / 19:25