GOOGLE ADS

среда, 13 апреля 2022 г.

Блокировка соединений RabbitMQ, но память ниже водяного знака

мы используем rabbitmq в нашем приложении, два часа назад один из наших серверов приложений заблокировался при попытке подключения к rabbitmq, после проверки сервера rabbitmq мы обнаружили, что память одного узла превышает водяной знак, через несколько минут этот узел не работает. после перезапуска этого узла весь кластер работает нормально, но я заметил, что есть много соединений в состоянии блокировки и блокировки из веб-управления, но использование rabbitmqctl list_connections pid name peer_address stateво всех узлах показывает, что нет соединения в состоянии блокировки/блокировки… так что это действительно сбивает меня с толку.:

  • после того, как один узел всего кластера над водяным знаком, но другой узел работает нормально, мое приложение не может подключиться к кластеру rabbitmq? ps: мы используем spring.amqp и spring-rabbit с версией 1.1.0.RELEASE

  • узел будет отключен по какой причине, когда над водяным знаком?

  • почему после перезапуска узла соединение по-прежнему блокируется, но с rabbitmqctl все они в рабочем состоянии?

  • вот несколько логов с моего сервера rabbitmq:

    =INFO REPORT==== 1-Mar-2013::19:36:21 ===
    vm_memory_high_watermark clear. Memory used:1656590680 allowed:1658778419
    =INFO REPORT==== 1-Mar-2013::19:36:21 ===
    alarm_handler: {clear,{resource_limit,memory,rabbit@cos22}}

    когда я пытаюсь закрыть заблокированное соединение из веб-управления, возникает ошибка:

    =INFO REPORT==== 1-Mar-2013::20:55:24 ===
    Closing connection <0.17197.115> because "Closed via management plugin"
    =ERROR REPORT==== 1-Mar-2013::20:55:24 ===
    webmachine error: path="/api/connections/10.64.13.200%3A45891%20-%3E%2010.64.12.226%3A5672"
    {throw,
    {error,{not_a_connection_pid,<0.17197.115>}},
    [{rabbit_networking,close_connection,2,
    [{file,"src/rabbit_networking.erl"},{line,317}]},
    {rabbit_mgmt_wm_connection,delete_resource,2,
    [{file,"rabbitmq-management/src/rabbit_mgmt_wm_connection.erl"},
    {line,52}]},
    {webmachine_resource,resource_call,3,
    [{file,
    "webmachine-wrapper/webmachine-git/src/webmachine_resource.erl"},
    {line,169}]},
    {webmachine_resource,do,3,
    [{file,
    "webmachine-wrapper/webmachine-git/src/webmachine_resource.erl"},
    {line,128}]},
    {webmachine_decision_core,resource_call,1,
    [{file,
    "webmachine-wrapper/webmachine-git/src/webmachine_decision_core.erl"},
    {line,48}]},
    {webmachine_decision_core,decision,1,
    [{file,
    "webmachine-wrapper/webmachine-git/src/webmachine_decision_core.erl"},
    {line,416}]},
    {webmachine_decision_core,handle_request,2,
    [{file,
    "webmachine-wrapper/webmachine-git/src/webmachine_decision_core.erl"},
    {line,33}]},
    {rabbit_webmachine,'-makeloop/1-fun-0-',3,
    [{file,"rabbitmq-mochiweb/src/rabbit_webmachine.erl"},{line,75}]}]}

    use rabbitmqctl показывает все в рабочем состоянии:

    rabbitmqctl list_connections pid name peer_address state
    Listing connections...
    <rabbit@cos23.1.1271.51> 10.64.13.197:57321 -> 10.64.12.225:5672 10.64.13.197 running
    <rabbit@cos23.1.1100.51> 10.64.13.196:57240 -> 10.64.12.225:5672 10.64.13.196 running
    <rabbit@cos23.1.1056.51> 10.64.12.196:58608 -> 10.64.12.225:5672 10.64.12.196 running
    <rabbit@cos23.1.1079.51> 10.64.11.235:48962 -> 10.64.12.225:5672 10.64.11.235 running
    <rabbit@cos23.1.1419.51> 10.64.13.228:49857 -> 10.64.12.225:5672 10.64.13.228 running
    <rabbit@cos23.1.1049.51> 10.64.11.193:36387 -> 10.64.12.225:5672 10.64.11.193 running
    <rabbit@cos23.1.1159.51> 10.64.10.123:52017 -> 10.64.12.225:5672 10.64.10.123 running
    <rabbit@cos23.1.26289.45> 10.64.12.247:38504 -> 10.64.12.225:5672 10.64.12.247 running
    <rabbit@cos23.1.1121.51> 10.64.10.29:51483 -> 10.64.12.225:5672 10.64.10.29 running
    <rabbit@cos23.1.1067.51> 10.64.11.234:50244 -> 10.64.12.225:5672 10.64.11.234 running
    <rabbit@cos23.1.1149.51> 10.64.11.178:33795 -> 10.64.12.225:5672 10.64.11.178 running
    <rabbit@cos23.1.1136.51> 10.64.10.28:39557 -> 10.64.12.225:5672 10.64.10.28 running
    <rabbit@cos23.1.1370.51> 10.64.13.233:38766 -> 10.64.12.225:5672 10.64.13.233 running
    <rabbit@cos23.1.1388.51> 10.64.13.229:50932 -> 10.64.12.225:5672 10.64.13.229 running
    <rabbit@cos23.1.1254.51> 10.64.13.241:49311 -> 10.64.12.225:5672 10.64.13.241 running
    <rabbit@cos23.1.1031.51> 10.64.11.195:39455 -> 10.64.12.225:5672 10.64.11.195 running
    <rabbit@cos23.1.1038.51> 10.64.10.27:58938 -> 10.64.12.225:5672 10.64.10.27 running
    <rabbit@cos23.1.1167.51> 10.64.13.240:37777 -> 10.64.12.225:5672 10.64.13.240 running
    <rabbit@cos23.1.1442.51> 10.64.10.130:37251 -> 10.64.12.225:5672 10.64.10.130 running
    <rabbit@cos22.3.2659.0> 10.64.13.200:54840 -> 10.64.12.226:5672 10.64.13.200 running
    ...done.

    и есть соединение с большим количеством каналов в заблокированном состоянии, но я не могу найти это соединение с помощью rabbitctl list_connections:

    AMQP 0-9-1 
    10.64.13.200:45891 -> 10.64.12.226:5672
    rabbit@cos22 0B/s
    (49.2MB total)
    0B/s
    (2.4MB total)
    0s 60920

    большое спасибо за любую помощь и предложение.


    Решение проблемы

    Получил ответ из списка рассылки rabbitmq:

    Эти соединения/каналы не существуют. Вы видите ошибку в подключаемом модуле управления, из-за которой он сохраняет информацию о соединениях и каналах, которые были активны на узле кластера на момент его сбоя.


    Эта ошибка была исправлена ​​в RabbitMQ 3.0.3.

    Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...