RabbitMQ: start_app sempre falha, a reinicialização do serviço está OK?

1

Desculpas se esta é uma pergunta estúpida, primeira semana no MQ e eu fui jogado no fundo do poço.

MQVersion é 3.7.6, o SO é Redhat 7.4 (Maipo) e Erlang é 9.3.2

Temos dois servidores RabbitMQ em um cluster, ambos são instâncias do AWS. Se eles são criados, eles constroem e se juntam a um cluster com bastante alegria. No entanto, se eu quiser fazer um stop_app, reset, start_app - o comando start falha ao reivindicar o endereço já em uso

{ throw:{could_not_start,rabbitmq_management, {rabbitmq_management, {bad_return, {{rabbit_mgmt_app,start,[normal,[]]}, {'EXIT', {{could_not_start_listener, [{port,35672}], {shutdown, {failed_to_start_child,ranch_acceptors_sup, {listen_error,rabbit_web_dispatch_sup_35672,eaddrinuse}}}}, }

A porta definitivamente não está em uso, uma simples verificação de porta durante o início faz com que a porta vá de fechada, abra (brevemente) e depois feche novamente. Parece que a única maneira de resolver isso é reiniciar o serviço e o nó voltará.

Eu também ajustei o arquivo de configuração e mudei a porta, tentei iniciar e obter exatamente o mesmo erro.

Eu tenho outro problema, mas gostaria de resolvê-lo primeiro.

Este é o conteúdo do rabbitmq-server.config

% This file managed by Puppet
% Template Path: rabbitmq/templates/rabbitmq.config
[
  {rabbit, [
    {cluster_nodes, {['rabbit@server1', 'rabbit@server2'], disc}},
    {cluster_partition_handling, ignore},
    {tcp_listen_options, [
         {keepalive,     true},
         {backlog,       128},
         {nodelay,       true},
         {linger,        {true, 0}},
         {exit_on_close, false}
    ]},
    {log_levels, [{connection, debug}]},
    {loopback_users, []},
    {default_user, <<"admin">>},
    {default_pass, <<"password">>}
  ]},
  {kernel, [

  ]}
,
  {rabbitmq_management, [
    {listener, [
      {port, 35672}
    ]}
  ]}
].
% EOF

Depuração / Log:

2018-06-14 14:09:35.712 [info] <0.33.0> Application rabbitmq_management_agent started on node rabbit@server2
2018-06-14 14:09:35.712 [debug] <0.1152.0> Supervisor rabbit_web_dispatch_sup started rabbit_web_dispatch_registry:start_link() at pid <0.1153.0>
2018-06-14 14:09:35.712 [debug] <0.1152.0> Supervisor rabbit_web_dispatch_sup started gen_event:start_link({local,webmachine_log_event}) at pid <0.1154.0>
2018-06-14 14:09:35.712 [info] <0.33.0> Application rabbitmq_web_dispatch started on node rabbit@server2
2018-06-14 14:09:35.712 [info] <0.33.0> Application amqp_client started on node rabbit@server2
2018-06-14 14:09:35.741 [debug] <0.1162.0> Supervisor {<0.1162.0>,ranch_listener_sup} started ranch_conns_sup:start_link(rabbit_web_dispatch_sup_35672, worker, 5000, ranch_tcp, 5000, cowboy_clear) at pid <0.1163.0>
2018-06-14 14:09:35.741 [error] <0.1164.0> Failed to start Ranch listener rabbit_web_dispatch_sup_35672 in ranch_tcp:listen([{port,35672}]) for reason eaddrinuse (address already in use)
2018-06-14 14:09:35.741 [error] <0.1164.0> CRASH REPORT Process <0.1164.0> with 0 neighbours exited with reason: {listen_error,rabbit_web_dispatch_sup_35672,eaddrinuse} in ranch_acceptors_sup:listen_error/4 line 59
2018-06-14 14:09:35.741 [error] <0.1162.0> Supervisor {<0.1162.0>,ranch_listener_sup} had child ranch_acceptors_sup started with ranch_acceptors_sup:start_link(rabbit_web_dispatch_sup_35672, 100, ranch_tcp, [{port,35672}]) at undefined exit with reason {listen_error,rabbit_web_dispatch_sup_35672,eaddrinuse} in context start_error
2018-06-14 14:09:35.742 [error] <0.1153.0> ** Generic server rabbit_web_dispatch_registry terminating

Qualquer sugestão será bem-vinda ...

Obrigado

    
por Dave Shaw 14.06.2018 / 13:39

1 resposta

0

Então, depois de muita escavação, encontrei a resposta.

Os caras que fizeram a configuração inicial, mas a porta de gerenciamento em 35672, parece que isso é reservado (35672-35680). Parece que, quando o serviço é iniciado, ele pode se vincular a esse endereço; no entanto, parar e iniciar o aplicativo deve ter uma ordem um pouco diferente.

Eu mudei a porta de volta para 15672 onde deveria estar. Espero que isso ajude alguém no futuro.

    
por 18.06.2018 / 08:50