1

しばらく使用しているRabbitMQショベルを持っています。

別のPC「192.168.7.6」からのメッセージをシャブリングしているPC「192.168.7.1」があります。これは、「192.168.7.6」が再起動しない限り機能します。その後、「192.168.7.1」のショベルはRUNNING状態のままになり、メッセージを受信したり、再接続したりすることはありません。したがって、メッセージは「192.168.7.6」で無期限にバッファリングされます。

これは、シャベルの設定を示す私の設定ファイルからの抜粋です。

[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]},
{rabbitmq_shovel,
    [ {shovels, [ {backbone_shovel,
                    [ {sources,
                        [ {brokers, [ "amqp://guest:guest@192.168.7.6"
                                    ]}
                        , {queue.declare, [
                                {queue, <<"backbone">>}
                                , durable
                                ]}
                        ]}
                    , {destinations,
                        [ {broker, "amqp://guest:guest@localhost"}
                        , {queue.declare, [
                                {queue, <<"backbone">>}
                                , durable
                                ]}
                        ]}
                    , {queue, <<"backbone">>}
                    , {ack_mode, on_confirm}                    
                    , {reconnect_delay, 5}
                    ]},

ソース(192.168.7.6)が再起動しているときのrabbitmqショベル管理プラグインからの抜粋を次に示します。

backbone_shovel 
running
type:   network
virtual_host:   /
host:   192.168.7.6
username:   guest
ssl:    false
type:   network
virtual_host:   /
host:   localhost
username:   guest
ssl:    false
2012-11-26 11:03:51

ターゲットが死んだときにシャベルを強制的に再起動するにはどうすればよいですか?

4

1 に答える 1

0

他の誰かが同じ問題を抱えている場合に備えて、私自身の質問に答えます。

この簡単な解決策は、サーバー(PC '192.168.7.1')ではなくクライアント(PC '192.168.7.6')にシャベルを置くことです。その後、クライアントが再起動すると、ショベルが再起動します。したがって、ショベルがクライアントの状態と同期しなくなることはありません。

于 2013-01-09T06:46:39.390 に答える