Фаҳмидани брокерҳои паёмҳо. Омӯзиши механикаи паёмнависӣ бо ActiveMQ ва Kafka. Боби 1

Салом хама!

Ба тарҷумаи китоби хурде шурӯъ кард:
«Фаҳмидани брокерҳои паёмҳо",
муаллиф: Якуб Кораб, ношир: O'Reilly Media, Inc., санаи нашр: июни 2017, ISBN: 9781492049296.

Аз муқаддимаи китоб:
"... Ин китоб ба шумо таълим медиҳад, ки чӣ тавр дар бораи системаҳои паёмнависии миёнаравӣ бо роҳи муқоиса ва муқоиса кардани ду технологияи маъмули брокерӣ фикр кунед: Apache ActiveMQ ва Apache Kafka. Он ҳолатҳои истифода ва ҳавасмандии рушдро шарҳ медиҳад, ки таҳиягарони онҳоро водор карданд, ки ба як соҳаи паёмнависии миёнаравӣ байни системаҳо равишҳои ба куллӣ гуногун гиранд. Мо ин технологияҳоро аз ибтидо дида мебароем ва таъсири интихоби тарроҳии мухталифро дар ин роҳ таъкид мекунем. Шумо фаҳмиши амиқи ҳарду маҳсулот, фаҳмиши он, ки чӣ гуна онҳо бояд истифода шаванд ва набояд истифода шаванд ва фаҳмиши он, ки ҳангоми баррасии технологияҳои дигари паёмнависӣ дар оянда ба чӣ диққат додан лозим аст, хоҳед гирифт. ... ”

Қисмҳои то ҳол тарҷумашуда:
Боби 1 Муқаддима
Боби 3. Кафка

Ман бобҳои анҷомёфтаро ҳангоми тарҷума нашр хоҳам кард.

БОБИ 1

Муқаддима

Паёмнависии байнисистемаӣ яке аз самтҳои камтар даркшудаи IT мебошад. Ҳамчун як таҳиягар ё меъмор, шумо шояд бо чаҳорчӯбаҳо ва пойгоҳи додаҳои гуногун хеле ошно бошед. Аммо, эҳтимол дорад, ки шумо танҳо тасаввуроте доред, ки технологияҳои паёмнависии ба брокер асосёфта чӣ гуна кор мекунанд. Агар шумо чунин ҳис мекунед, хавотир нашавед, шумо дар як ширкати хуб ҳастед.

Одамон одатан бо инфрасохтори паёмнависӣ тамоси хеле маҳдуд доранд. Аксар вақт онҳо ба системае, ки кайҳо пеш сохта шудааст, пайваст мешаванд ё маҷмӯаи тақсимотро аз Интернет зеркашӣ мекунанд, онро дар PROM насб мекунанд ва ба навиштани код барои он шурӯъ мекунанд. Пас аз кор кардани инфрасохтор дар PROM, натиҷаҳоро омехта кардан мумкин аст: паёмҳо ҳангоми садамаҳо гум мешаванд, ирсолҳо тавре ки шумо интизор будед кор намекунанд ё брокерҳо истеҳсолкунандагони шуморо овезон мекунанд ё ба истеъмолкунандагони шумо паём намефиристанд.

Садо шинос?

Сенарияи умумӣ, ки дар он рамзи паёмнависии шумо дар айни замон хуб кор мекунад. То он даме, ки он кор намекунад. Ин давра ҳушёриро лағв мекунад ва ҳисси бардурӯғи амниятро медиҳад, ки боиси боз ҳам бештар код дар асоси ғояҳои бардурӯғ дар бораи рафтори бунёдии технология мегардад. Вақте ки корҳо нобаробар мешаванд, шумо бо як ҳақиқати ногувор дучор мешавед: шумо воқеан рафтори аслии маҳсулотро нафаҳмидаед ё муомилаҳои интихобкардаи муаллифон, ба монанди иҷроиш ва устуворӣ ё транзаксия бо уфуқӣ. миқёспазирӣ.

Бе фаҳмиши амиқи кори брокерҳо, одамон дар бораи системаҳои паёмнависии худ даъвоҳои ба назар оқилона пешниҳод мекунанд, ба монанди:

  • Система ҳеҷ гоҳ паёмҳоро гум намекунад
  • Паёмҳо пайдарпай коркард карда мешаванд
  • Илова кардани истеъмолкунандагон системаро тезтар мекунад
  • Паёмҳо танҳо як маротиба расонида мешаванд

Мутаассифона, баъзе аз ин изҳоротҳо ба фарзияҳое асос ёфтаанд, ки танҳо дар шароити муайян татбиқ мешаванд, дар ҳоле ки дигарон дуруст нестанд.

Ин китоб ба шумо таълим медиҳад, ки чӣ тавр дар бораи системаҳои паёмнависии брокерӣ бо роҳи муқоиса ва муқоиса кардани ду технологияи маъмули брокерӣ фикр кунед: Apache ActiveMQ ва Apache Kafka. Он ҳолатҳои истифода ва ҳавасмандии рушдро шарҳ медиҳад, ки таҳиягарони онҳоро водор кардаанд, ки ба як соҳаи паёмнависии миёнаравӣ байни системаҳо равишҳои ба куллӣ гуногун гиранд. Мо ин технологияҳоро аз ибтидо дида мебароем ва таъсири интихоби тарроҳии мухталифро дар ин роҳ таъкид мекунем. Шумо фаҳмиши амиқи ҳарду маҳсулот, фаҳмиши он, ки чӣ гуна онҳо бояд истифода шаванд ва набояд истифода шаванд ва фаҳмиши он, ки ҳангоми баррасии технологияҳои дигари паёмнависӣ дар оянда ба чӣ диққат додан лозим аст, хоҳед гирифт.

Пеш аз он ки мо оғоз кунем, биёед асосҳоро аз назар гузаронем.

Системаи паёмнависӣ чист ва чаро он лозим аст

Барои он ки ду барнома бо ҳамдигар муошират кунанд, онҳо бояд аввал интерфейсро муайян кунанд. Таърифи ин интерфейс интихоби интиқол ё протокол ба монанди HTTP, MQTT ё SMTP ва гуфтушуниди форматҳои паёмро, ки системаҳо мубодила мекунанд, дар бар мегирад. Ин метавонад як раванди қатъӣ бошад, ба монанди муайян кардани схемаи XML бо талаботи арзиши боркашонӣ барои паём ё он метавонад хеле камтар расмӣ бошад, ба монанди созишномаи байни ду таҳиякунанда, ки як қисми дархости HTTP дорои идентификатори муштарӣ бошад. .

То он даме, ки формати паёмҳо ва тартиби фиристодани онҳо дар байни системаҳо мувофиқат мекунанд, онҳо метавонанд бидуни ташвиш дар бораи татбиқи системаи дигар бо ҳамдигар муошират кунанд. Ҷузъҳои дохилии ин системаҳо, ба монанди забони барномасозӣ ё чаҳорчӯбаи истифодашуда, метавонанд бо мурури замон тағйир ёбанд. То он даме, ки худи шартнома нигоҳ дошта мешавад, ҳамкорӣ метавонад дар тарафи дигар бетағйир идома ёбад. Бо ин интерфейс ду система ба таври муассир ҷудо карда мешаванд (ҷудо мешаванд).

Системаҳои паёмнависӣ маъмулан миёнарави байни ду системаро дар бар мегиранд, ки барои боз ҳам ҷудо кардани (ҷудо кардани) ирсолкунанда аз қабулкунанда ё гиранда ҳамкорӣ мекунанд. Дар ин ҳолат, системаи паёмнависӣ ба ирсолкунанда имкон медиҳад, ки бидуни донистани он, ки гиранда дар куҷо ҷойгир аст, фаъол аст ё чанд намунаи онҳо.

Биёед якчанд аналогҳоро барои намудҳои мушкилоте, ки системаи паёмнависӣ ҳал мекунад, дида бароем ва баъзе истилоҳҳои асосиро ҷорӣ кунем.

Нуқта ба нуқта

Александра ба почта меравад, то ба Одам баста фиристад. Вай ба назди тиреза меравад ва посылкаро ба коргар медиҳад. Корманд бастаро гирифта, ба Александра квитанция медихад. Вақте ки баста фиристода мешавад, ба Одам лозим нест, ки дар хона бошад. Александра итминон дорад, ки баста дар як лаҳза ба Одам расонида мешавад ва метавонад кори худро идома диҳад. Баъдтар, дар як лаҳза, Одам бастаеро мегирад.

Ин як намунаи модели паёмнависӣ аст нуқта ба нуқта. Почта дар ин ҷо ҳамчун механизми тақсимоти бастаҳо амал мекунад ва кафолат медиҳад, ки ҳар як баста як маротиба расонида мешавад. Истифодаи почта акти фиристодани посылкаро аз супурдани посылка чудо мекунад.
Дар системаҳои паёмнависии классикӣ, модели нуқта ба нуқта тавассути амалӣ карда мешавад навбатӣ. Навбат ҳамчун буфери FIFO (аввал дар аввал баромад) амал мекунад, ки як ё якчанд истеъмолкунандагон метавонанд ба он обуна шаванд. Ҳар як паём танҳо расонида мешавад яке аз истеъмолкунандагони обунашуда. Навбатҳо одатан кӯшиш мекунанд, ки паёмҳоро дар байни истеъмолкунандагон одилона паҳн кунанд. Танҳо як истеъмолкунанда ин паёмро қабул мекунад.

Истилоҳи «устувор» нисбат ба навбат истифода мешавад. Боварӣ моликияти хадамотест, ки кафолат медиҳад, ки системаи паёмнависӣ паёмҳоро дар сурати набудани муштариёни фаъол то обуна шудани истеъмолкунанда ба навбати интиқоли паём нигоҳ медорад.

Эътимоднокӣ аксар вақт бо омехта карда мешавад суботкорй ва гарчанде ки ин ду истилоҳ ивазшавандаанд, онҳо вазифаҳои гуногунро иҷро мекунанд. Истиродат муайян мекунад, ки оё паём аз ҷониби системаи паёмнависӣ ба ягон намуди нигоҳдорӣ байни қабул ва фиристодани он ба истеъмолкунанда навишта шудааст. Паёмҳои ба навбат фиристодашуда метавонанд доимӣ бошанд ё набошанд.
Паёмнависии нуқта ба нуқта вақте истифода мешавад, ки парвандаи истифода як амали як паёмро талаб мекунад. Мисолҳо гузоштани маблағ ба суратҳисоб ё иҷрои фармоиши интиқолро дар бар мегиранд. Мо баъдтар муҳокима хоҳем кард, ки чаро системаи паёмнависӣ худ аз худ қодир нест, ки интиқоли якдафъаинаро таъмин кунад ва чаро навбатҳо дар беҳтарин ҳолат кафолати интиқолро таъмин карда метавонанд. камаш як бор.

Ношир-Муштарӣ

Габриелла ба рақами конфронс занг мезанад. Ҳангоме ки вай ба конфронс пайваст аст, вай ҳама чизеро, ки нотиқ мегӯяд, дар якҷоягӣ бо дигар иштирокчиёни занг мешунавад. Вақте ки вай сиёҳ мешавад, вай суханони гуфташударо пазмон мешавад. Ҳангоми дубора пайваст шудан, вай шунидани суханони гуфташударо идома медиҳад.

Ин як намунаи модели паёмнависӣ аст нашр кардан-обуна шудан. Занги конфронс ҳамчун механизми пахш амал мекунад. Ба шахсе, ки сӯҳбат мекунад, парвое надорад, ки ҳоло чанд нафар дар тамос ҳастанд - система кафолат медиҳад, ки ҳар касе, ки ҳоло пайваст аст, суханони гуфташударо мешунавад.
Дар системаҳои паёмнависии классикӣ, модели паёмнависии интишор-обуна тавассути амалӣ карда мешавад бомҳо. Мавзӯъ ҳамон усули пахши механизми конфронсро таъмин мекунад. Вақте ки паём ба мавзӯъ интишор карда мешавад, он паҳн карда мешавад барои ҳамаи корбарони обунашуда.

Мавзӯъҳо одатан беэътимод (ноустувор). Мисли шунавандае, ки дар занги конфронс чӣ гуфта мешавад, шунида наметавонад, вақте ки шунаванда офлайн мешавад, муштариёни мавзӯъ ҳама паёмҳоеро, ки ҳангоми офлайн буданашон фиристода мешаванд, аз даст медиҳанд. Аз ин сабаб, мо гуфта метавонем, ки болопӯшҳо кафолати интиқолро медиҳанд. на бештар аз як маротиба барои ҳар як истеъмолкунанда.

Паёмнависии Publish-Subscribe одатан вақте истифода мешавад, ки паёмҳо хусусияти иттилоотӣ доранд ва талафоти як паём махсусан муҳим нест. Масалан, мавзӯъ метавонад хониши ҳароратро аз як гурӯҳи сенсорҳо дар як сония як маротиба интиқол диҳад. Системае, ки ба ҳарорати кунунӣ таваҷҷӯҳ дорад ва ба мавзӯъ обуна мешавад, агар паёмро гум кунад, хавотир нахоҳад шуд - дигараш ба зудӣ меояд.

моделҳои гибридӣ

Вебсайти мағоза паёмҳои фармоишро ба "навбати паёмҳо" мегузорад. Истеъмолкунандаи асосии ин паёмҳо низоми иҷроия мебошад. Илова бар ин, системаи аудит бояд нусхаҳои ин паёмҳои фармоишро барои пайгирии минбаъда дошта бошад. Ҳарду система наметавонанд паёмҳоро аз даст диҳанд, ҳатто агар худи системаҳо барои муддате дастнорас бошанд. Вебсайт набояд аз системаҳои дигар огоҳ бошад.

Ҳолатҳои истифода аксар вақт омехтаи моделҳои паёмнависии нашр-обуна ва нуқта ба нуқтаро талаб мекунанд, масалан, вақте ки системаҳои сершумор ба нусхаи паём ниёз доранд ва барои пешгирии талафоти паём ҳам эътимод ва ҳам устуворӣ лозим аст.

Дар ин мавридҳо, макони таъинот (истеъмоли умумӣ барои навбатҳо ва мавзӯъҳо) лозим аст, ки паёмҳоро асосан мисли мавзӯъ паҳн мекунад, то ҳар як паём ба системаи алоҳидае, ки ба ин паёмҳо манфиатдор аст, фиристода шавад, аммо дар он ҳар як система метавонад якчанд истеъмолкунандагонро муайян кунад. ки паёмҳои воридотӣ мегиранд, ки бештар ба навбат монанд аст. Навъи хониш дар ин ҳолат - як маротиба барои ҳар як шахси манфиатдор. Ин самтҳои гибридӣ аксар вақт устувориро талаб мекунанд, то ки агар истеъмолкунанда пайваст шавад, паёмҳое, ки дар он вақт фиристода мешаванд, ҳангоми пайвастшавии истеъмолкунанда қабул карда мешаванд.

Моделҳои гибридӣ нав нестанд ва онҳоро метавон ба аксари системаҳои паёмнависӣ, аз ҷумла ҳам ActiveMQ (тавассути самтҳои маҷозӣ ё таркибӣ, ки мавзӯъҳо ва навбатҳоро муттаҳид мекунад) ва Кафка (ба таври возеҳ ҳамчун моликияти бунёдии тарҳи таъиноти он) истифода бурд.

Акнун, ки мо истилоҳоти асосӣ ва фаҳмидем, ки системаи паёмнависӣ барои чӣ муфид буда метавонад, биёед ба тафсилот ворид шавем.

Тарҷума анҷом дода шуд: tele.gg/middle_java

Қисми навбатии тарҷума: Боби 3. Кафка

Давом дорад…

Манбаъ: will.com

Илова Эзоҳ