2015-07-27 18 views
7

Mi piacerebbe definire il mirroring per tutte le mie code di default. Al momento ho usare rabbitmqctl una volta il nodo è fino:Definire i criteri di rabbitmq nel file di configurazione

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

Se uno dei miei nodi non riescono, avrei dovuto ricordare di ri-eseguire quel codice al riavvio.

C'è un modo per configurare automaticamente il mio nodo per utilizzare le code con mirroring?

risposta

1

Non è possibile impostare la politica nel file rabbitmq.config. Una soluzione alternativa è avviare rmq usando uno script di init e inserire il comando rabbitmqctl al suo interno in modo che venga eseguito ogni volta che rmq si avvia o si riavvia.

7

Policy Può essere specificato in un file di definizione, a cui è possibile fare riferimento dal file di configurazione.

Esempio di come ho impostato una politica specifica (non so se ha possono essere specificati in politica):

/etc/rabbitmq/rabbitmq.config

[ 
{rabbit, 
    [{vm_memory_high_watermark, 0.8}] 
}, 
{rabbitmq_management, 
    [{listener, [{port, 15672}]}, 
    {load_definitions, "/etc/rabbitmq/rabbitmq_definitions.json"}, 
    {http_log_dir, "/var/log/rabbitmq/management_http.log"}] 
} 
]. 

/etc/RabbitMQ/rabbitmq_definitions.json

{  "users":[ 
      {"name":"rabbot","password_hash":"Cvse5iGOg20UqUq7Za9D1tatOJnMVDru4GHtxqc02g7zj5ur","tags":""}, 
      {"name":"rabnet","password_hash":"CqqG2fwvH6xz64NpibGJx2M7ZCyFnR1BQBM+C0KH2qRPmVxF","tags":"administrator"}], 
    "vhosts":[ 
      {"name":"/"}], 
    "permissions":[ 
      {"user":"viabot","vhost":"VIA","configure":".*","write":".*","read":".*"}, 
      {"user":"vianet","vhost":"VIA","configure":".*","write":".*","read":".*"}], 
    "parameters":[], 
    "policies":[ 
      {"vhost":"VIA","name":"DLX","pattern":".*","apply-to":"queues","definition":{"dead-letter-exchange":"dead_letter"},"priority":0} 
      ], 
    "queues":[ 
      {"name":"store_to_es","vhost":"VIA","durable":true,"auto_delete":false,"arguments":{}}, 
      {"name":"store_to_mongodb","vhost":"VIA","durable":true,"auto_delete":false,"arguments":{}} 
      ], 
    "exchanges":[ 
      {"name":"data_incoming","vhost":"VIA","type":"fanout","durable":true,"auto_delete":false,"internal":false,"arguments":{}}, 
      {"name":"sms_incoming","vhost":"VIA","type":"fanout","durable":true,"auto_delete":false,"internal":false,"arguments":{}} 
      ], 
    "bindings":[ 
      {"source":"data_incoming","vhost":"VIA","destination":"store_to_es","destination_type":"queue","routing_key":"","arguments":{}}, 
      {"source":"sms_incoming","vhost":"VIA","destination":"store_to_mongodb","destination_type":"queue","routing_key":"","arguments":{}} 
    ] 
} 

sto condividendo questo file di configurazione e definizioni f perché era impossibile capirlo dal sito web RabbitMQ.

Nota: Questa configurazione ha lavorato su RabbitMQ 3.6.1 in esecuzione su Ubuntu 14,04  

+0

Le informazioni possono essere trovate qui: https://www.rabbitmq.com/management.html –

0

ho cercato la stessa cosa e ha trovato questa domanda. Per aggiungere ulteriori dettagli nella risposta del IvanD, questo come ho fatto:

Primo: sudo nano /etc/rabbitmq/rabbitmq.config (questo comando potrebbe essere diverso a seconda del sistema operativo)

[ 
    {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"}] 
    } 
]. 

quindi creare la JSON aggiuntivo: sudo nano /etc/rabbitmq/rabbitmq_definitions.json (questo comando potrebbe essere diverso a seconda del sistema operativo) Ed è contenuto:

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

NOTA IMPORTANTE: L'ha-sync-batch-size è supportata solo nelle versioni RabbitMQ sopra 3.6.0! https://www.rabbitmq.com/ha.html#sync-batch-size Se il tuo coniglio è più vecchio di quello, rimuovi l'impostazione dallo rabbitmq_definitions.json.

Sto usando ubuntu 14.04 Trusty e Rabbitmq v.3.6.2.

Problemi correlati