RabbitMQ rühmitamine CentOS 7-s

RabbitMQ on avatud lähtekoodiga sõnumite vahendaja, mis toetab AMQP, STOMP ja muid sidetehnoloogiaid. Seda kasutatakse laialdaselt ettevõtete rakendustes ja kaasaegsetes mikroteenuste arhitektuurides, kus see toimib asünkroonse sõnumikanalina erinevate mikroteenuste vahel. Selles juhendis kirjeldatakse, kuidas saate RabbitMQ rühmitada mitmesse CentOS 7 serverisse, et moodustada kõrge kättesaadavusega sõnumivahendaja. Selles õpetuses toimib üks server peaserverina ja teised serverid peegelserveritena juhuks, kui peaserver muutub kättesaamatuks.

Eeltingimused

Konfigureerige tulemüür

CentOS-i tulemüür ( firewalld) ei luba vaikimisi sissetulevat liiklust. Selleks, et teha RabbitMQ kättesaadavaks teistele süsteemidele võrgus ja väljaspool seda ning võimaldada meil juurdepääsu halduskonsoolile, peame esmalt avama mõned pordid.

RabbitMQ veebiliidese halduskonsool kuulab vaikimisi porti 15672. Soovime teha halduskonsooli avalikult kättesaadavaks, et saaksime sellele oma arvutist ligi pääseda. Seetõttu anname korralduse firewalldavada püsivalt port 15672avalikus tsoonis (mis on Vultri eksemplari vaike- ja aktiivne tsoon).

sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

RabbitMQ sõlmed peavad saama üksteisega suhelda. Soovime avada vajalikud pordid, kuid ainult sisevõrgu kaudu. Me ei taha, et keegi Internetis saaks meie servereid hallata või nendega otse ühendust võtta. Järgmised käsud eeldavad, et meie serverid on 192.168.0.100/24alamvõrgus.

Esimene teenus on epmdpartnertuvastusteenus, mis kuulab vaikimisi porti 4369.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="192.168.0.100/24"
  port protocol="tcp" port="4369" accept'

Sõlmedevaheliseks ja CLI-suhtluseks peab RabbitMQ suutma suhelda pordi kaudu 25672.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="192.168.0.100/24"
  port protocol="tcp" port="25672" accept'

CLI tööriistad suhtlevad pordivahemikus 35672-35682.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="192.168.0.100/24"
  port protocol="tcp" port="35672-35682" accept'

Kui teie rakendused vajavad AMQP-protokolli, peate avama ka pordid 5671ja 5672. Kui teil on vaja suhelda mõne muu protokolli kaudu, leiate vajaliku teabe RabbitMQ võrgunõuete kohta ametlikust RabbitMQ dokumentatsioonist .

sudo firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="192.168.0.100/24"
  port protocol="tcp" port="5672" accept'

sudo firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="192.168.0.100/24"
  port protocol="tcp" port="5671" accept'

Nüüd, kui see firewalldon konfigureeritud, peame juhendama seda konfiguratsiooni uuesti laadima.

sudo firewall-cmd --reload

Korrake selle jaotise samme kõigis serverites.

Installige rabbitmqadmin

Halduspluginaga on kaasas Pythoni tööriist, rabbitmqadminmida saab pärast haldusplugina lubamist hõlpsasti süsteemi installida.

sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin

Konfigureerige DNS

Klasterdamisel peate serverite tuvastamiseks kasutama serveri hostinimesid. Vaikimisi pole serveritele DNS-kirjet määratud ja ühenduse loomine ebaõnnestub. Selle kiireks ületamiseks lisage /etc/hostsoma lemmikredaktoriga failile põhi- ja peegelhosti nimi .

Näiteks võib teie kapteni hostide fail välja näha järgmine. Pange tähele kahte viimast kirjet, mis võimaldavad serveritel üksteist hostinime järgi tuvastada. Muutke kindlasti IP-aadressid enda omadeks.

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 guest
::1       guest

127.0.0.1 YOUR_MASTER_SERVER_HOST_NAME
::1       YOUR_MASTER_SERVER_HOST_NAME


192.168.0.101 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.102 YOUR_MIRROR_SERVER_HOST_NAME

Klasterdage sõlmed

Impordi eeltingimuseks, et sõlmed saaksid üksteisega liituda, on see, et kõigi sõlmede Erlangi küpsis on identne. Vaikimisi määratakse igale sõlmele kordumatu Erlangi küpsis, seega peate selle kõigis sõlmedes uuesti konfigureerima.

Järgmine käsk seab Erlangi küpsise väärtuseks " WE<3COOKIES", kuid muutke seda vabalt oma maitse järgi. Tehke seda kõigis serverites.

sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"

Taaskäivitage RabbitMQ kõigis serverites, et veenduda, et Erlangi küpsis on korralikult uuesti laaditud.

sudo systemctl restart rabbitmq-server.service

Käivitage järgmised käsud kõigis serverites, välja arvatud peaserveris. See võimaldab sõlmedel liituda peaserveriga ja moodustada klastri.

sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app

Kontrollige, kas sõlmed on klastriga liitunud, käivitades järgmise käsu.

sudo rabbitmqctl cluster_status

Kõik teie sõlmed ilmub nodesja running_nodesosa toodangut. Nüüdsest ei pea te enam igas serveris samme kordama, konfiguratsioon peegeldub automaatselt teistesse sõlmedesse.

Looge kõrge saadavuse poliitika

Nüüd, kui meil on RabbitMQ sõlmede klaster, saame seda kasutada kõrge saadavuse järjekordade ja vahetuste loomiseks, seadistades uue poliitika. Seda poliitikat saab lisada RabbitMQ halduskonsooli või käsurea liidese kaudu.

sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'

Järgmine loend selgitab, mida iga käsu osa tähendab.

  • -p "/": kasutage seda "/"reeglit vhostis (vaikimisi pärast installimist)
  • --priority 1: poliitika rakendamise järjekord
  • --apply-to "all": Võib olla "queues", "exchanges"või"all"
  • ha: nimi, mille me oma poliitikale anname
  • ".*": regulaaravaldis, mida kasutatakse otsustamaks, millistele järjekordadele või vahetustele seda reeglit rakendatakse. ".*"sobib kõigega
  • '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}': poliitika JSON-esitus. See dokument kirjeldab, mida me tahame – täpselt 2 sõlme, millel andmed automaatselt sünkroonitakse

Lühidalt, see reegel tagab, et meil on alati järjekorras või börsil kaks koopiat andmetest seni, kuni meil on töös vähemalt kaks sõlme. Kui teil on rohkem sõlmi, saate väärtust suurendada ha-params. Soovitatav N/2 + 1on sõlmede kvoorum ( ). Kui teil on andmetest rohkem koopiaid, suureneb ketta-, i/o- ja võrgukasutus, mis võib põhjustada jõudluse halvenemist.

Kui soovite peegeldada andmeid kõikidesse klastri sõlmedesse, võite kasutada järgmist JSON-dokumenti.

'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'

Kui soovite peegeldada andmeid ainult teatud sõlmedesse (näiteks: node-1ja node-2), võite kasutada järgmist.

'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'

Regulaaravaldist saate muuta, et määrata erinevatele järjekordadele erinevad poliitikad. Oletame, et meil on järgmised kolm sõlme:

  • jänes@meister
  • jänes@klient-ha
  • küülik@toode-ha

Seejärel saame luua kaks poliitikat, mille tulemuseks on see, et järjekorrad, mille nimi algab sõnaga "klient", peegeldatakse rabbit@client-hasõlme ja kõik järjekorrad, mille nimi algab sõnaga "toode", peegeldatakse rabbit@product-hasõlme.

sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-client "client.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@client-ha"], "ha-sync-mode": "automatic"}
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-product "product.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@product-ha"], "ha-sync-mode": "automatic"}

Väike märkus: eksklusiivsed järjekorrad ei ole RabbitMQ-s kunagi peegeldatud ega püsivad, isegi kui see reegel sobiks selliste järjekordadega. Eksklusiivsed järjekorrad hävitatakse automaatselt, kui klient ühenduse katkestab, ja seetõttu poleks selle teise serverisse kopeerimine kasulik. Kui server peaks ebaõnnestuma, katkestaks klient sellega ühenduse ja järjekord hävitatakse automaatselt. Samuti hävitataks peegeldatud eksemplarid.

Seadistuse testimine

Kobarate seadistuse testimiseks saame luua uue järjekorra, kasutades halduskonsooli käsurea liidest.

sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true

See loob püsiva järjekorra /vaikevhostile nimega my-ha-queue.

Käivitage järgmine käsk ja kontrollige väljundis, et järjekorrale on määratud meie poliitika "ha" ja kas pea- ja peegelsõlmes on pid.

sudo rabbitmqctl list_queues name policy state pid slave_pids

Nüüd saame avaldada järjekorda sõnumi peasõlmest ja peatada RabbitMQ peasõlmes.

sudo rabbitmqadmin -u user_name -p password  publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown

Nüüd saate selle tagasi, ühendades peegelsõlmega.

 sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue

Lõpuks saame oma põhisõlme taaskäivitada.

sudo systemctl start rabbitmq-server.service

Kustutage külaliskasutaja

Nagu varem mainitud, loob RabbitMQ automaatselt külaliskasutaja vaikimisi külalisparooliga. Halb tava oleks jätta see vaikekasutaja avalikult avatud süsteemi.

sudo rabbitmqctl delete_user guest

Installige Plesk operatsioonisüsteemi CentOS 7

Installige Plesk operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Plesk on patenteeritud veebihosti juhtpaneel, mis võimaldab kasutajatel hallata oma isiklikke ja/või klientide veebisaite, andmebaase

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kuidas installida Microweber operatsioonisüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile

Mattermost 4.1 installimine CentOS 7-sse

Mattermost 4.1 installimine CentOS 7-sse

Kas kasutate teistsugust süsteemi? Mattermost on avatud lähtekoodiga isehostitav alternatiiv Slack SAAS-i sõnumsideteenusele. Teisisõnu, Mattermostiga saate ca

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Minecrafti serverite võrgu loomine BungeeCordi abil opsüsteemides Debian 8, Debian 9 või CentOS 7

Mida vajate Vultr VPS-i, millel on vähemalt 1 GB muutmälu. SSH-juurdepääs (juur-/administraatoriõigustega). 1. samm: BungeeCordi installimine Kõigepealt

Võimaldab Pleskis krüptida

Võimaldab Pleskis krüptida

Pleski juhtpaneelil on Lets Encrypti jaoks väga kena integratsioon. Lets Encrypt on üks ainsatest SSL-i pakkujatest, kes väljastab sertifikaate täielikult

Võimaldab krüptida cPanelil

Võimaldab krüptida cPanelil

Lets Encrypt on sertifitseerimisasutus, mis on pühendunud SSL-sertifikaatide tasuta pakkumisele. cPanel on teie ja teie kliendi jaoks loonud korraliku integratsiooni

Kuidas installida Concrete5 süsteemi CentOS 7

Kuidas installida Concrete5 süsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Concrete5 on avatud lähtekoodiga CMS, mis pakub palju eristatavaid ja kasulikke funktsioone, mis aitavad toimetajatel sisu hõlpsalt luua.

Kuidas installida CentOS 7 arvustuspaneeli

Kuidas installida CentOS 7 arvustuspaneeli

Kas kasutate teistsugust süsteemi? Review Board on tasuta avatud lähtekoodiga tööriist lähtekoodi, dokumentatsiooni, piltide ja palju muu ülevaatamiseks. See on veebipõhine tarkvara

Setup HTTP Authentication With Nginx on CentOS 7

Setup HTTP Authentication With Nginx on CentOS 7

In this guide, you will learn how to setup HTTP authentication for an Nginx web server running on CentOS 7. Requirements To get started, youll need th

Kuidas installida YOURLS süsteemi CentOS 7

Kuidas installida YOURLS süsteemi CentOS 7

YOURLS (Your Own URL Shortener) on avatud lähtekoodiga URL-i lühendamise ja andmeanalüüsi rakendus. Selles artiklis käsitleme installimisprotsessi

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kuidas installida ja konfigureerida ArangoDB CentOS 7-s

Kas kasutate teistsugust süsteemi? Sissejuhatus ArangoDB on avatud lähtekoodiga NoSQL-i andmebaas, millel on paindlik andmemudel dokumentide, graafikute ja võtmeväärtuste jaoks. see on

Etckeeperi kasutamine faili / etc versioonikontrolliks

Etckeeperi kasutamine faili / etc versioonikontrolliks

Sissejuhatus Kataloog /etc/ mängib Linuxi süsteemi toimimises kriitilist rolli. Selle põhjuseks on peaaegu iga süsteemi konfiguratsioon

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Miks peaksite kasutama SSHFS-i? Kuidas ühendada CentOS 6-ga kaugfailisüsteem SSHFS-iga

Paljud süsteemiadministraatorid haldavad suuri servereid. Kui failidele on vaja juurde pääseda erinevatest serveritest, logige igasse eraldi sisse ca

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

Half Life 2 serveri seadistamine opsüsteemis CentOS 6

See õpetus hõlmab Half Life 2 mänguserveri installimist süsteemi CentOS 6 System. 1. samm: eeltingimuste installimine Ou seadistamiseks

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Kuidas installida Laravel GitScrum süsteemi CentOS 7

Laravel GitScrum ehk GitScrum on avatud lähtekoodiga produktiivsuse tööriist, mis on loodud selleks, et aidata arendusmeeskondadel rakendada Scrumi metoodikat sarnasel viisil.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit