Rabbitmq

Da sia.
Vai alla navigazione Vai alla ricerca

Installare rabbitmq

Scaricare il .deb da http://www.rabbitmq.com/server.html

dpkg -i rabbitmq-server_2.4.1-1_all.deb

scaricare i file .ez per tutti i plugin interessanti e copiarli nella cartella: /usr/lib/rabbitmq/lib/rabbitmq_server-2.4.1/plugins/

Plugin interessanti

  • rabbitmq-management: aggiunge l'interfaccia web per amministrare rabbitmq sulla porta 55672
  • rabbit_stomp: permette di ricevere/inviare messaggi con stomp
  • rabbit_shovel: trasmette messaggi da un nodo rabbitmq ad un altro

Configurare rabbitmq

Il file di configurazione e' /etc/rabbitmq/rabbitmq.config e non esiste in una nuova installazione. Un esempio e':

[
 {rabbit, [
    {ssl_listeners, [5671]},
    {ssl_options, [{cacertfile,"/etc/ssl/certs/tcs-chain.pem"},
                   {certfile,"/etc/ssl/certs/wutki.pem"},
                   {keyfile,"/etc/ssl/private/wutki.key"},
                   {verify,verify_peer},
                   {fail_if_no_peer_cert,false}]}
  ]},
  {rabbit_management,       [ {http_log_dir,          "/var/log/rabbitmq/rabbit-mgmt"} ] },
{rabbit_shovel,
      [{shovels,
        [{avocado_order_shovel,
          [{sources, [{broker, "amqp://guest:guest@wayf.unimore.it/"},
                           {declarations,
                              [{'queue.declare',
                                      [{queue, <<"backup_orders">>},
                                        durable]},
                               {'exchange.declare',
                                      [{exchange, <<"incoming_orders">>},
                                       {type, <<"direct">>},
                                       durable]},
                               {'queue.bind',
                                   [{exchange, <<"incoming_orders">>},
                                    {queue, <<"backup_orders">>},
                                    {routing_key, <<"warehouse">>}]}
                              ]}]},
           {destinations, [{broker, "amqp://guest:guest@localhost"},
                           {declarations,
                              [{'queue.declare',
                                   [{queue, <<"warehouse_carpinteria">>},
                                     durable]},
                               {'exchange.declare',
                                      [{exchange, <<"incoming_orders">>},
                                       {type, <<"direct">>},
                                       durable]},
                               {'queue.bind',
                                   [{exchange, <<"incoming_orders">>},
                                    {queue, <<"warehouse_carpinteria">>},
                                    {routing_key, <<"warehouse">>}]}
                              ]}]},
           {queue, <<"backup_orders">>},
           {auto_ack, false},
           {tx_size, 0},
           {publish_properties, [{delivery_mode, 2}]},
           {publish_fields, [{exchange, <<"incoming_orders">>},
                             {routing_key, <<"warehouse">>}]},
           {reconnect_delay, 5}
          ]}
         ]
       }]
    }
%,
%  {rabbit_shovel,
%  [{shovels,
%    [{wayf_shovel,
%      [{sources,      [{brokers,
%                          ["amqp://wayf.unimore.it"
%                          ]},
%			{declarations,
%                               [{'queue.declare',
%                                       [{queue, <<"wutki">>},
%                                         durable]}
%                          ]}]},
%       {destinations, [{broker, "amqp://"}
%                          ]}]},
%       {queue, <<wutki>>}
%      ]}
%     ]
%  }
].

Le righe che iniziano con % sono commenti. La parentesi quadre e graffe sono separate da virgole, salvo l'ultimo elemento.

Operazioni su rabbitmq

Ispezionare i log

Resettare il sistema