0

私はrabbitmqメッセージキューを備えたarchlinuxを実行しているコンピューターのペアを持っており、シャベルを使用して最初のコンピューターのキューから2番目のコンピューターのキューにメッセージを移動したいと思います。残念ながら、シャベルを作成できないようです。また、rabbitmq.configファイルが読み取られていることを確認することもできません。

コンピューター1のIPアドレスは192.168.6.66です。

/etc/rabbitmq/rabbitmq-env.conf

NODENAME=bunny
NODE_IP_ADDRESS=192.168.6.66
NODE_PORT=5672

LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/plugins

/etc/rabbitmq/rabbitmq.conf

[   {mnesia, [{dump_log_write_threshold, 100}]},
    {bunny, [{vm_memory_high_watermark, 0.3}]},
    {rabbitmq_shovel,
        [{shovels,
            [{test_shovel,
                [{sources, [{broker, "amqp://shoveluser:shoveluser@192.168.6.64:5672/"}]},
                 {destinations, [{broker, ""}]},
                 {queue, <<"observation2">>}
                ]
            }]

        }]
    }
].

コンピューター2のIPアドレスは192.168.6.64です。

/etc/rabbitmq/rabbitmq-env.conf

NODENAME=bunny
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672

LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
RABBITMQ_PLUGINS_DIR=/usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/plugins

コンピューター1でrabbitmq-serverを再起動すると、次のように出力されます。

[root@test_toshiba ~]# /etc/rc.d/rabbitmq-server restart
:: Stopping rabbitmq-server daemon                                                                                                                            [BUSY] Stopping and halting node bunny@localhost ...
...done.
                                                                                                                                                              [DONE]
:: Starting rabbitmq-server daemon                                                                                                                            [BUSY] Activating RabbitMQ plugins ...

********************************************************************************
********************************************************************************

9 plugins activated:
* amqp_client-2.7.1
* erlando-2.7.1
* mochiweb-1.3-rmq2.7.1-git
* rabbitmq_management-2.7.1
* rabbitmq_management_agent-2.7.1
* rabbitmq_mochiweb-2.7.1
* rabbitmq_shovel-2.7.1
* rabbitmq_shovel_management-2.7.1
* webmachine-1.7.0-rmq2.7.1-hg

ここに設定ファイルのドキュメントの説明があれば、この「設定ファイル:/etc/rabbitmq/rabbitmq.config」が表示されることを期待していました。

そして、rabbitmq-serverが起動した後、このコマンドを実行しましたが、シャベルが表示されません。

[root@test_toshiba ~]# rabbitmqctl eval 'rabbit_shovel_status:status().'
[]
...done.

これがrabbitmqのステータスです

[root@test_toshiba ~]# rabbitmqctl status
Status of node bunny@localhost ...
[{pid,14225},
 {running_applications,
     [{rabbitmq_shovel,"Data Shovel for RabbitMQ","2.7.1"},
      {erlando,"Syntax extensions for Erlang","2.7.1"},
      {rabbitmq_shovel_management,"Shovel Status","2.7.1"},
      {rabbitmq_management,"RabbitMQ Management Console","2.7.1"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","2.7.1"},
      {amqp_client,"RabbitMQ AMQP Client","2.7.1"},
      {rabbit,"RabbitMQ","2.7.1"},
      {os_mon,"CPO  CXC 138 46","2.2.9"},
      {sasl,"SASL  CXC 138 11","2.2.1"},
      {rabbitmq_mochiweb,"RabbitMQ Mochiweb Embedding","2.7.1"},
      {webmachine,"webmachine","1.7.0-rmq2.7.1-hg"},
      {mochiweb,"MochiMedia Web Server","1.3-rmq2.7.1-git"},
      {inets,"INETS  CXC 138 49","5.9"},
      {mnesia,"MNESIA  CXC 138 12","4.7"},
      {stdlib,"ERTS  CXC 138 10","1.18.1"},
      {kernel,"ERTS  CXC 138 10","2.15.1"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang R15B01 (erts-5.9.1) [source] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true]\n"},
 {memory,
     [{total,18530752},
      {processes,6813815},
      {processes_used,6813800},
      {system,11716937},
      {atom,428361},
      {atom_used,414658},
      {binary,182176},
      {code,8197217},
      {ets,911776}]},
 {vm_memory_high_watermark,0.39999999942574066},
 {vm_memory_limit,417929625}]
...done.

/ var / log/rabbitmqのログにはエラーメッセージが含まれていませんでした。

設定ファイルが使用されていることを確認するにはどうすればよいですか?また、シャベルが起動しないのはなぜですか?

4

2 に答える 2

2

シャベルの宛先を定義する必要があります。

    [{mnesia、[{dump_log_write_threshold、100}]}、
        {バニー、[{vm_memory_high_watermark、0.3}]}、
        {rabbitmq_shovel、
            [{シャベル、
                [{test_shovel、
                    [{sources、[{broker、 "amqp:// shoveluser:shoveluser@192.168.6.64:5672 /"}]}、
                     {宛先、[{ブローカー、 "amqp:// shoveluser:shoveluser @ 192.168.6.66:5672 /"}]}、
                     {キュー、>}
                    ]
                }]

            }]
        }
    ]。

于 2012-06-28T11:09:00.303 に答える
0

「」はローカルホストブローカー(「宛先」)の用語を指定するのに十分ではないと思います。代わりに「amqp://」が必要だと思います。

したがって、目的地の用語は次のようになります。

{宛先、[{ブローカー、 "amqp://"}]}

ローカルブローカーのユーザー名とホスト名(他の答え)を指定することも機能するかもしれませんが、それは必要ではないと思います。

于 2012-07-11T23:22:35.823 に答える