22

デフォルトですべてのキューのミラーリングを定義したいと考えています。ノードが起動したら、現在使用する必要があります。rabbitmqctl

rabbitmqctl set_policy ha-all "" '{"ha-mode":"all"}'

ノードの 1 つに障害が発生した場合、再起動時にそのコードを再実行することを覚えておく必要があります。

ミラー化されたキューを使用するようにノードを自動的に構成する方法はありますか?

4

5 に答える 5

13

IvanD's answerに詳細を追加するには、これが私のやり方です。

最初: sudo nano /etc/rabbitmq/rabbitmq.config(このコマンドは、OS によって異なる場合があります)

[
  {rabbit,
    [
        {default_vhost,<<"/">>},
        {default_user,<<"someuser">>},
        {default_pass,<<"somepassword">>},
        {default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
        {default_user_tags, [administrator]}
    ]
  },
  {rabbitmq_management,
    [{listener, [{port, 15672}]},
        {load_definitions, "/etc/rabbitmq/rabbitmq_definitions.json"},
        {http_log_dir, "/var/log/rabbitmq/management_http.log"}]
  }
].

次に、追加の json を作成しますsudo nano /etc/rabbitmq/rabbitmq_definitions.json(このコマンドは、OS によって異なる場合があります)。その内容:

{
  "vhosts":[
        {"name":"/"}
  ],
  "policies":[
        {"vhost":"/","name":"ha","pattern":"", "definition":{"ha-mode":"all","ha-sync-mode":"automatic","ha-sync-batch-size":5}}
  ]
}

重要な注意: ha-sync-batch-size は、RabbitMQ バージョン 3.6.0 でのみサポートされています! https://www.rabbitmq.com/ha.html#sync-batch-size ウサギがそれよりも古い場合は、 から設定を削除しますrabbitmq_definitions.json

Ubuntu 14.04 Trusty と RabbitMQ v.3.6.2 を使用しています。

于 2016-06-28T08:54:21.440 に答える