RabbitMQ запускается нормально, но статус плагина лопаты указан как «запуск».
Я использую следующий rabbitmq.config:
Каждый брокер работает на отдельном экземпляре AWS. Удаленный сервер — это сервер Windows 2008, локальный сервер — Amazon Linux.
[{rabbitmq_shovel, [{shovels, [{scrape_request_shovel, [{sources, [{broker,"amqp://test_user:test_password@localhost"}]}, {destinations, [{broker, "amqp://test_user:test_password@ec2-###-##-###-###.compute-1.amazonaws.com"}]}, {queue, <<"scp_request">>}, {ack_mode, on_confirm}, {publish_properties, [{delivery_mode, 2}]}, {publish_fields, [{exchange, <<"">>}, {routing_key, <<"scp_request">>}]}, {reconnect_delay, 5} ]} ] }] }].
Выполнение следующей команды:
sudo rabbitmqctl eval 'rabbit_shovel_status:status().'
возвращает:
[{scrape_request_shovel,начало,{{2012,7,11},{23,38,47}}}]
Согласно этому вопросу, это может произойти, если пользователи не был правильно настроен на двух брокерах. Тем не менее, я перепроверил, правильно ли настроил пользователей с помощью rabbitmqctl user_add на обеих машинах — даже пробовал это с другим набором пользователей, чтобы быть уверенным.
Я также запустил сканирование nmap порта 5672 на удаленном хосте, чтобы убедиться, что он запущен и работает на этом порту.
ОБНОВЛЕНИЕ Проблема не решена, но, похоже, это результат проблем с подключением к удаленному серверу. Я изменил «reconnect_delay» на 0 в своем конфигурационном файле, чтобы избежать бесконечного повторного подключения лопаты. Настоятельно рекомендуем другим пользователям с этой проблемой сделать то же самое, так как это позволит вам получать сообщения об ошибках из rabbit_shovel_status. В моем случае я получил следующую ошибку:
[{scrape_request_shovel, {terminated, {{badmatch,{error,access_refused}}, [{rabbit_shovel_worker,make_conn_and_chan,1}, {rabbit_shovel_worker,handle_cast,2}, {gen_server2,handle_msg,2}, {proc_lib,init_p_do_apply,3}]}}, {{2012,7,12},{0,4,37}}}]