Прошу прощения, если это глупый вопрос, первая неделя на MQ, и я был брошен в самый конец.
MQVersion - 3.7.6, ОС - Redhat 7.4 (Maipo), а Erlang - 9.3.2.
У нас есть 2 сервера RabbitMQ в кластере, оба экземпляра AWS. Если они раскручиваются, они довольно успешно строят и присоединяются к кластеру. Однако, если я хочу выполнить stop_app, reset, start_app - команда start не может запросить адрес, который уже используется.
{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}}}},
}
Порт определенно не используется, простая проверка порта во время запуска показывает, что порт переходит из закрытого в открытый (ненадолго), а затем снова закрывается. Кажется, единственный способ решить эту проблему - перезапустить службу и узел вернется в рабочее состояние.
Я также настроил файл конфигурации и изменил порт, попробовал запустить и получил ту же ошибку.
У меня есть еще одна проблема, но я хотел бы сначала решить ее.
Это содержимое 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
Отладка / Журнал:
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
Любые предложения приветствуются ...
Спасибо
Итак, после долгих поисков я нашел ответ.
Ребята, которые выполнили первоначальную настройку, но порт управления на 35672, похоже, зарезервирован (35672-35680). Похоже, что когда служба запускается, она может привязаться к этому адресу, однако остановка и запуск приложения должны иметь немного другой порядок.
Я переключил порт обратно на 15672, где он должен быть. Надеюсь, это поможет кому-то еще в будущем.