RabbitMQ Clustering på Ubuntu 14.04

RabbitMQ er messaging service, der giver dig mulighed for at køere og sprede dine databehandlingsopgaver for at understøtte servere. Dette giver dig f.eks. Mulighed for at opbygge en serverklynge, der udelukkende er ansvarlig for at behandle billedoploader (ændring af størrelse, tilføjelse af filtre, lagring til lagring osv.). Hver server i denne klynge kontakter RabbitMQ-klyngen for nye, ubehandlede meddelelser.

Server Configuration

Følgende konfiguration vil blive brugt til denne vejledning.

Indlæs afbalancering med HAProxy

For at undgå ekstra og unødvendig logik kan din ansøgning, trafikbalance og tilgængelighed opnås ved at bruge en belastningsbalancer i stedet. HAProxy er en fantastisk belastningsbalanceringsløsning til dem uden adgang til en hardwarebalancer eller en AWS ELB, for eksempel.

  1. Installer HAProxy.
    sudo apt-get install haproxy
  2. Åbn HAProxy-konfigurationsfilen i et tekstredigeringsprogram, som VI.
    sudo vi /etc/haproxy/haproxy.conf
  3. Konfigurer RabbitMQ-klyngen i HAProxy. I eksemplet nedenfor skaber vi en klynge kaldet rabbitc1, der lytter på port 5762. Det vil have to noder navngivet kanin-01 og kanin-02. Sundhedschecks vil blive udført på hver knudepunkt. Kontoen vil blive indstillet til nul enhver knude, der fejler 3 på hinanden følgende checks, og blive bragt tilbage online efter 2 succesfulde efterfølgende kontrol.
  4. Gem dine ændringer og afslut teksteditoren.
  5. Genstart HAProxy
    sudo apt-get haproxy genstart
  6. Kontroller, at HAProxy RabbitMQ-serveren kører ved at bruge netstat og kontrollere port 5672.
    netstat -nl
  7. Udgangen af ​​netstat-kommandoen skal vise en port på 5672 for at være i en lytte tilstand.
    Aktive internetforbindelser (kun servere) Proto Recv-Q Send-Q Lokal Adress Udenlandsk Adressestat TCP 0 0 0.0.0.0: 22 0.0.0.0: * LISTEN tcp 0 0 0.0.0.0: 5672 0.0.0.0: * LISTEN

Opbygning af RabbitMQ Cluster

Vores klynge består af to noder. For at sikre høj tilgængelighed i tilfælde af en knudefejl, afspejler vores noder hinandens meddelelseskøer.

Første knudepunkt

  1. Installer RabbitMQ
    sudo apt-get install rabbitmq-server
  2. Indstil klyngepolitik til at spejle alle køer til alle knuder.
    sudo rabbitmqctl set_policy ha-all "" '{"ha-mode": "alle"}'
  3. Opret en virtuel vært til din ansøgning. For eksempel opretter vi en kaldet / prod.
    sudo rabbitmqctl add_vhost / prod
  4. Opret din administratorkonto.
    sudo rabbitmqctl add_user jdoe my-super-complex-password
  5. Giv din administrator konto passende tilladelser.
    sudo rabbitmqctl set_permissions -p / prod jdoe ". *" ". *" ". *"
  6. Din ansøgning skal bruge en konto til at kommunikere med RabbitMQ. Opret din applikationskonto ved at bruge følgende kommando, så du kan angive en kompleks adgangskode.
    sudo rabbitmqctl add_user app1user [Email protected]
  7. Giv din applikations konto passende tilladelser til den virtuelle vært.
    sudo rabbitmqctl set_permissions -p / prod jdoe ". *" ". *" ". *"

Andet knudepunkt

  • Log på det første knudepunkt.
  • Vær opmærksom på Erlang Cookie værdien. Værdien kan ses ved at se .erlange.cookie filen.
    sudo cat /var/lib/rabbitmq/.erlang.cookie
  • Log på det andet knudepunkt.
  • Installer RabbitMQ
    sudo apt-get install rabbitmq-server
  • Stop tjenesten RabbitMQ.
    sudo rabbitmq-server stop
  • Giver Skriv privilegier til RabbitMQ Erlang Cookie-filen.
    sudo chmod + w /var/lib/rabbitmq/.erlang.cookie
  • Åbn filen i et tekstredigeringsprogram, og erstat det med indholdet af den første knude.
    sudo vi /var/lib/rabbitmq/.erlang.cookie
  • Gem ændringerne i filen og afslut teksteditoren.
  • Fjern skrive tilladelser fra filen.
    sudo chmod -w /var/lib/rabbitmq/.erlang.cookie
  • Start RabbitMQ-tjenesten
    sudo service rabbitmq-server start
  • Stop RabbitMQ App
    sudo rabbitmqctl stop_app
  • Tilslut knuden til klyngen via den første knude.
    sudo rabbitmqctl join_cluster [Email protected]
  • Start RabbitMQ App
    sudo rabbitmqctl start_app
  • Bekræft klyngens status indeholder både RabbitMQ-noder.
    sudo rabbitmqctl cluster_status

Yderligere noder

Alle yderligere noder kan følge de nøjagtige samme trin, der er angivet under anden node.

Web Management Console

  1. Log på det første knudepunkt.
  2. Installer styringskonsollen plugin til RabbitMQ.
    rabbitmq-plugins muliggør rabbitmq_management
  3. Genstart RabbitMQ.
    sudo service rabbitmq-server genstart
  4. Giv din administrator konto administrative rettigheder til konsollen. For eksempel bliver vores adminkonto navngivet jdoe.
    sudo rabbitmqctl set_user_tags jdoe administrator
  5. Gentag trin 2 og 3 på hver RabbitMQ-klusterknude.
  6. Log på webkonsollen ved at gå til http: // <server-navn-eller-ip>: 15672.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.