Груписање РаббитМК-а на ЦентОС 7

РаббитМК је посредник порука отвореног кода који подржава АМКП, СТОМП и друге комуникационе технологије. Широко се користи у пословним апликацијама и модерним архитектурама микро-услуга где делује као асинхрони канал за поруке између различитих микро-услуга. Овај водич ће описати како можете да групишете РаббитМК на више ЦентОС 7 сервера да бисте формирали брокера порука високе доступности. У овом водичу, један сервер ће деловати као главни сервер, а други сервери ће деловати као сервери у огледалу у случају да главни сервер постане недоступан.

Предуслови

Конфигуришите заштитни зид

Заштитни зид ЦентОС, ( firewalld), подразумевано не дозвољава никакав долазни саобраћај. Да бисмо РаббитМК учинили доступним за друге системе унутар и ван мреже, и да бисмо нам омогућили приступ управљачкој конзоли, прво морамо да отворимо неке портове.

Конзола за управљање веб интерфејсом РаббитМК-а подразумевано слуша порт 15672. Желели бисмо да управљачку конзолу учинимо јавно доступном како бисмо јој могли приступити са нашег рачунара. Стога ћемо упутити firewalldда трајно отворимо порт 15672у јавној зони (која је подразумевана и активна зона на Вултр инстанци).

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

РаббитМК чворови морају бити у могућности да комуницирају једни са другима. Желели бисмо да отворимо потребне портове, али само преко интерне мреже. Не желимо да било ко на интернету може да администрира или директно контактира наше сервере. Следеће команде претпостављају да су наши сервери на 192.168.0.100/24подмрежи.

Прва услуга је услуга epmdпеер дисцовери која подразумевано слуша на порту 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'

За интернодну и ЦЛИ комуникацију, РаббитМК мора бити у могућности да комуницира преко порта 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'

ЦЛИ алати комуницирају преко опсега портова 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'

Ако је вашим апликацијама потребан АМКП протокол, такође ћете морати да отворите портове 5671и 5672. Ако треба да будете у могућности да комуницирате преко другог протокола, потребне информације о мрежним захтевима РаббитМК-а можете пронаћи у званичној РаббитМК документацији .

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'

Сада када firewalldје конфигурисано, морамо га упутити да поново учита конфигурацију.

sudo firewall-cmd --reload

Поновите кораке из овог одељка на свим серверима.

Инсталирај rabbitmqadmin

Додатак за управљање долази са Питхон алатом rabbitmqadminкоји се може лако инсталирати на систем када је додатак за управљање омогућен.

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

Конфигуришите ДНС

Морате да користите имена сервера да бисте идентификовали сервере приликом груписања. Подразумевано, серверима није додељен ДНС запис и веза неће успети. Да бисте то брзо превазишли, додајте главно име и име хоста огледала у /etc/hostsдатотеку користећи свој омиљени уређивач.

На пример, хост датотека вашег мајстора може изгледати овако. Обратите пажњу на последња два записа, који омогућавају серверима да се међусобно идентификују по имену хоста. Обавезно промените ИП адресе на своју.

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

Групирајте чворове

Предуслов за увоз који омогућава да се чворови придруже једни другима је да су Ерланг колачићи свих чворова идентични. Подразумевано, сваком чвору ће бити додељен јединствени Ерланг колачић, тако да га морате поново конфигурисати на свим чворовима.

Следећа команда ће поставити Ерланг колачић на „ WE<3COOKIES“, али слободно промените ово по свом укусу. Урадите ово на свим серверима.

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

Поново покрените РаббитМК на свим серверима да бисте били сигурни да је Ерланг колачић правилно поново учитан.

sudo systemctl restart rabbitmq-server.service

Извршите следеће команде на свим серверима осим на главном серверу. Ово ће омогућити чворовима да се придруже главном серверу и формирају кластер.

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

Проверите да ли су се чворови придружили кластеру тако што ћете покренути следећу команду.

sudo rabbitmqctl cluster_status

Сви ваши чворови ће се појавити у nodesи running_nodesодељку излаза. Од сада, више не морате да понављате кораке на сваком серверу, конфигурација ће се аутоматски пресликати на друге чворове.

Креирајте политику високе доступности

Сада када имамо кластер РаббитМК чворова, можемо ово да користимо за стварање редова високе доступности и размене постављањем нове политике. Ова политика се може додати преко конзоле за управљање РаббитМК или помоћу интерфејса командне линије.

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

Следећа листа ће објаснити шта значи сваки део наредбе.

  • -p "/": Користите ову политику на "/"вхост-у (подразумевано након инсталације)
  • --priority 1: Редослед којим се примењују смернице
  • --apply-to "all": Може бити "queues", "exchanges"или"all"
  • ha: Име које дајемо нашој политици
  • ".*": Регуларни израз који се користи за одлучивање на које редове или размене се примењује ова политика. ".*"ће одговарати било чему
  • '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}': ЈСОН приказ политике. Овај документ описује да желимо - тачно 2 чвора на којима се подаци аутоматски синхронизују

Укратко, ова политика ће осигурати да ћемо увек имати 2 копије података у реду чекања или размене све док имамо најмање 2 чвора која раде и раде. Ако имате више чворова, можете повећати вредност ha-params. N/2 + 1Саветује се кворум, ( ), чворова. Ако имате више копија ваших података, то би резултирало већом употребом диска, И/О-а и мреже, што би могло довести до смањених перформанси.

Ако желите да пресликате податке на све чворове у кластеру, можете користити следећи ЈСОН документ.

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

Ако желите да пресликате податке само на одређене чворове (на пример: node-1и node-2), можете користити следеће.

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

Можете да промените регуларни израз да бисте доделили различите смернице различитим редовима. Рецимо да имамо следећа три чвора:

  • раббит@мастер
  • раббит@цлиент-ха
  • зец@производ-ха

Затим можемо да креирамо две политике које ће резултирати да редови имају име које почиње са „клијент“ да се преслика на rabbit@client-haчвор и да се сви редови који имају име које почиње са „производ“ пресликају на rabbit@product-haчвор.

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"}

Мала напомена овде: ексклузивни редови се никада не пресликавају нити су трајни у РаббитМК, чак и ако би ова политика одговарала таквим редовима. Ексклузивни редови се аутоматски уништавају када се клијент прекине и, као такви, не би било од користи да се то реплицира на други сервер. Ако би сервер покварио, клијент би прекинуо везу са њим и ред би се аутоматски уништио. Зрцалне инстанце би такође биле уништене.

Тестирање подешавања

Да бисмо тестирали кластеризовано подешавање, можемо да креирамо нови ред користећи интерфејс командне линије преко управљачке конзоле.

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

Ово ће створити трајни ред на подразумеваном /вхост-у са именом my-ha-queue.

Покрените следећу команду и проверите у излазу да је реду додељена наша 'ха' политика и да има пид-ове на главном и на огледалном чвору.

sudo rabbitmqctl list_queues name policy state pid slave_pids

Сада можемо да објавимо поруку у реду са главног чвора и зауставимо РаббитМК на главном чвору.

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

Сада га вратите тако што ћете се повезати са чвором огледала.

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

Коначно, можемо поново покренути наш главни чвор.

sudo systemctl start rabbitmq-server.service

Избришите госта корисника

Као што је раније поменуто, РаббитМК аутоматски креира госта са подразумеваном лозинком за госте. Била би лоша пракса оставити овог подразумеваног корисника на јавно изложеном систему.

sudo rabbitmqctl delete_user guest

Инсталирајте Плеск на ЦентОС 7

Инсталирајте Плеск на ЦентОС 7

Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података

Како инсталирати Скуид проки на ЦентОС

Како инсталирати Скуид проки на ЦентОС

Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу

Како инсталирати Мицровебер на ЦентОС 7

Како инсталирати Мицровебер на ЦентОС 7

Користите другачији систем? Мицровебер је ЦМС и онлајн продавница отвореног кода. Мицровебер изворни код се налази на ГитХуб-у. Овај водич ће вам показати

Како инсталирати Маттермост 4.1 на ЦентОС 7

Како инсталирати Маттермост 4.1 на ЦентОС 7

Користите другачији систем? Маттермост је опен соурце алтернатива Слацк СААС сервису за размену порука. Другим речима, са Маттермостом, ца

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво

Омогућава шифровање на Плеску

Омогућава шифровање на Плеску

Плеск контролна табла има веома лепу интеграцију за Летс Енцрипт. Летс Енцрипт је један од јединих ССЛ провајдера који у потпуности издају сертификате

Омогућава шифровање на цПанелу

Омогућава шифровање на цПанелу

Летс Енцрипт је ауторитет за сертификацију посвећен бесплатном пружању ССЛ сертификата. цПанел је направио уредну интеграцију тако да ви и ваш клијент

Како инсталирати Цонцрете5 на ЦентОС 7

Како инсталирати Цонцрете5 на ЦентОС 7

Користите другачији систем? Цонцрете5 је ЦМС отвореног кода који нуди многе карактеристичне и корисне функције које помажу уредницима да лако производе садржај и

Како инсталирати плочу за преглед на ЦентОС 7

Како инсталирати плочу за преглед на ЦентОС 7

Користите другачији систем? Ревиев Боард је бесплатан алат отвореног кода за преглед изворног кода, документације, слика и још много тога. То је софтвер заснован на вебу

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

У овом водичу ћете научити како да подесите ХТТП аутентификацију за Нгинк веб сервер који ради на ЦентОС 7. Захтеви Да бисте започели, требаће вам

Како инсталирати ИОУРЛС на ЦентОС 7

Како инсталирати ИОУРЛС на ЦентОС 7

ИОУРЛС (Иоур Овн УРЛ Схортенер) је апликација за скраћивање УРЛ-ова отвореног кода и аналитику података. У овом чланку ћемо покрити процес инсталације

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Користите другачији систем? Увод АрангоДБ је НоСКЛ база података отвореног кода са флексибилним моделом података за документе, графиконе и кључ-вредности. То је

Коришћење Етцкеепер-а за контролу верзија /етц

Коришћење Етцкеепер-а за контролу верзија /етц

Увод Директоријум /етц/ игра кључну улогу у начину на који Линук систем функционише. Разлог за то је што је скоро свака конфигурација система

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

Многи системски администратори управљају великим количинама сервера. Када датотекама треба приступити на различитим серверима, пријављивање на сваки појединачно ца

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Овај водич ће покрити процес инсталирања Халф Лифе 2 сервера за игре на ЦентОС 6 систем. Корак 1: Инсталирање предуслова Да бисте подесили оу

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Ларавел ГитСцрум или ГитСцрум је алатка за продуктивност отвореног кода дизајнирана да помогне развојним тимовима да имплементирају Сцрум методологију на сличан начин т

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више