RabbitMQ Clustering na Ubuntu 14.04

Služba RabbitMQ je služba pro zasílání zpráv, která umožňuje fronty a šíření úkolů zpracování dat na backend servery. Například to vám umožní vytvořit serverový cluster, který je výhradně odpovědný za zpracování nahrávek fotografií (změna velikosti, přidávání filtrů, ukládání do úložiště apod.). Každý server v tomto clusteru kontaktuje clusteru RabbitMQ pro nové nezpracované zprávy.

Konfigurace serveru

Pro tento tutoriál bude použita následující konfigurace.

Vyrovnávání zatížení pomocí HAProxy

Abyste se vyhnuli dodatečné a zbytečné logice vaší aplikace, vyvažování provozu a dostupnost lze získat použitím vyrovnávací paměti zatížení. HAProxy je fantastické řešení pro vyvažování zátěže pro uživatele bez přístupu k hardwarovému balanceru nebo AWS ELB.

  1. Nainstalujte HAProxy.
    sudo apt-get nainstalovat haproxy
  2. Otevřete konfigurační soubor HAProxy v textovém editoru, jako je VI.
    sudo vi /etc/haproxy/haproxy.conf
  3. Nakonfigurujte cluster RabbitMQ v HAProxy. V následujícím příkladu vytvoříme cluster nazvaný rabbitc1, který naslouchá na portu 5762. Bude mít dva uzly pojmenované králík-01 a králík-02. Zdravotní kontroly se provádějí na každém uzlu. Kontrola bude nastavena na libovolný uzel, který nezdaří po sobě následujících kontrolách 3, a po úspěšných následných kontrolách 2 se vrátí zpět online.
  4. Uložte změny a ukončete textový editor.
  5. Restartujte HAProxy
    sudo apt-get haproxy restart
  6. Ověřte, zda je server HAProxy RabbitMQ spuštěn pomocí příkazu netstat a kontrolou portu 5672.
    netstat -nl
  7. Výstup příkazu netstat by měl ukázat, že port v 5672 bude ve stavu poslechu.
    Aktívne připojení k Internetu (pouze servery) Proto adresy odesílané v adresáři odesílané adresy odeslané v adresáři Q Adresa cizí adresy tcp 0 0 0.0.0.0: 22 0.0.0.0: * POČET TCP 0 0 0.0.0.0: 5672 0.0.0.0: * POČET

Budování clusteru RabbitMQ

Náš cluster bude sestávat ze dvou uzlů. Abychom zajistili vysokou dostupnost v případě selhání uzlu, budou naše uzly zrcadlovat druhé fronty zpráv.

První uzel

  1. Nainstalujte RabbitMQ
    sudo apt-get nainstalovat rabbitmq-server
  2. Nastavte zásady clusteru tak, aby zrcadlily všechny fronty do všech uzlů.
    sudo rabbitmqctl set_policy ha-vše "" '{"ha-mode": "vše"}'
  3. Vytvořte virtuální hostitel pro vaši aplikaci. Například vytvoříme jeden volaný / prod.
    sudo rabbitmqctl add_vhost / prod
  4. Vytvořte účet správce.
    sudo rabbitmqctl přidat_user jdoe my-super-complex-heslo
  5. Přidejte příslušnému oprávnění správci účtu.
    sudo rabbitmqctl set_permissions -p / prod jdoe ". *" ". *" ". *"
  6. Vaše aplikace bude potřebovat účet pro komunikaci se společností RabbitMQ. Vytvořte účet aplikace pomocí následujícího příkazu, který zajistí, že nastavíte složité heslo.
    sudo rabbitmqctl add_user app1user [Email chráněn]
  7. Přeneňte účtu aplikace příslušné oprávnění k virtuálnímu hostiteli.
    sudo rabbitmqctl set_permissions -p / prod jdoe ". *" ". *" ". *"

Druhý uzel

  • Přihlaste se do prvního uzlu.
  • Poznamenejte si hodnotu Erlang Cookie. Hodnotu lze vidět zobrazením souboru .erlange.cookie.
    sudo kočka /var/lib/rabbitmq/.erlang.cookie
  • Přihlaste se do druhého uzlu.
  • Nainstalujte RabbitMQ
    sudo apt-get nainstalovat rabbitmq-server
  • Zastavte službu RabbitMQ.
    sudo rabbitmq-server stop
  • Grant Oprávnění k zápisu souboru RabbitMQ Erlang Cookie.
    sudo chmod + w /var/lib/rabbitmq/.erlang.cookie
  • Otevřete soubor v textovém editoru a nahraďte jeho obsah za obsah prvního uzlu.
    sudo vi /var/lib/rabbitmq/.erlang.cookie
  • Uložte změny do souboru a ukončete textový editor.
  • Odebrat oprávnění pro zápis ze souboru.
    sudo chmod -w /var/lib/rabbitmq/.erlang.cookie
  • Spusťte službu RabbitMQ
    sudo service rabbitmq-server start
  • Zastavte aplikaci RabbitMQ
    sudo rabbitmqctl stop_app
  • Připojte uzel k clusteru přes první uzel.
    sudo rabbitmqctl join_cluster [Email chráněn]
  • Spusťte aplikaci RabbitMQ
    sudo rabbitmqctl start_app
  • Ověřte, zda stav clusteru obsahuje obě uzly RabbitMQ.
    sudo rabbitmqctl cluster_status

Další uzly

Všechny další uzly mohou sledovat přesně stejné kroky uvedené v druhém uzlu.

Konzola pro správu webu

  1. Přihlaste se do prvního uzlu.
  2. Nainstalujte modul plug-in Management Console pro RabbitMQ.
    rabbitmq-plugins umožňují rabbitmq_management
  3. Restartujte aplikaci RabbitMQ.
    sudo služba rabbitmq-server restart
  4. Poskytněte administrátorským právům správce účtu konzole. Například náš účet admin bude jmenován jdoe.
    sudo rabbitmqctl set_user_tags správce jdoe
  5. Opakujte kroky 2 a 3 na každém uzlu clusteru RabbitMQ.
  6. Přihlaste se k webové konzoli na adrese http: // <server-name-or-ip>: 15672.

Napsat komentář