Konprann koutye mesaj. Aprann mekanik mesaj ak ActiveMQ ak Kafka. Chapit 1

Всем Привет!

Mwen te kòmanse tradui yon ti liv:
«Konprann Message Brokers",
otè: Jakub Korab, Piblikatè: O'Reilly Media, Inc., dat piblikasyon: Jen 2017, ISBN: 9781492049296.

Soti nan entwodiksyon liv la:
"... Liv sa a pral moutre w kijan pou w reflechi sou sistèm mesaj koutye, konpare ak konpare de teknoloji koutye popilè: Apache ActiveMQ ak Apache Kafka. Li pral dekri ka itilize yo ak ankourajman devlopman ki te mennen devlopè yo pran apwòch trè diferan nan menm zòn nan-message ant sistèm ak yon koutye entèmedyè. Nou pral gade teknoloji sa yo depi nan baz epi mete aksan sou enpak divès kalite chwa konsepsyon sou wout la. Ou pral jwenn yon konpreyansyon pwofon sou tou de pwodwi yo, yon konpreyansyon sou fason yo ta dwe epi yo pa ta dwe itilize, ak yon konpreyansyon sou sa pou chèche pou lè w ap konsidere lòt teknoloji messagerie nan lavni. ... "

Pati ki tradui jiskaprezan:
Chapit 1. Entwodiksyon
Chapit 3. Kafka

Mwen pral poste chapit ki fini yo pandan y ap tradui yo.

CHAPIT 1

Entwodiksyon

Mesaj sistèm-a-sistèm se youn nan zòn ki pi piti nan IT. Kòm yon pwomotè oswa achitèk, ou ka trè abitye ak divès kad ak baz done. Sepandan, li posib ke ou sèlman gen yon abitye pasan ak ki jan koutye ki baze sou teknoloji messagerie travay. Si w santi w konsa, pa enkyete w, w ap an bon konpayi.

Moun yo anjeneral gen kontak trè limite ak enfrastrikti mesaj la. Yo souvan konekte ak yon sistèm ki te kreye yon bon bout tan de sa, oswa telechaje yon distribisyon soti nan entènèt la, enstale li nan PROM epi yo kòmanse ekri kòd pou li. Apre yo fin kouri enfrastrikti nan PROM, rezilta yo ka melanje: mesaj yo pèdi akòz echèk, voye pa travay jan ou te espere, oswa koutye "kwoke" pwodiktè ou oswa pa voye mesaj bay konsomatè ou yo.

Son abitye?

Yon senaryo komen se kote kòd mesaj ou a travay gwo, pou tan ke yo te. Jiskaske li sispann travay. Peryòd sa a kalme gad yon moun nan yon fo sans sekirite, ki mennen nan plis kòd ki baze sou fo kwayans sou konpòtman fondamantal teknoloji a. Lè bagay yo kòmanse mal, w ap fè fas ak yon verite enkonvenyan: ke ou pa vrèman konprann konpòtman ki kache nan pwodwi a oswa konpwomi yo chwazi pa otè yo, tankou pèfòmans kont fyab, oswa tranzaksyon kont évolutivité orizontal. .

San yo pa yon konpreyansyon pwofon sou fason koutye yo travay, moun fè deklarasyon w pèdi rezonab sou sistèm mesaj yo, tankou:

  • Sistèm nan p'ap janm pèdi mesaj
  • Mesaj yo pral trete sekans
  • Ajoute konsomatè yo pral fè sistèm lan pi vit
  • Mesaj yo pral delivre yon sèl fwa

Malerezman, kèk nan deklarasyon sa yo baze sou sipozisyon ki aplike sèlman nan sèten sikonstans, pandan ke lòt yo tou senpleman kòrèk.

Liv sa a pral anseye w kijan pou w reflechi sou sistèm mesaj ki baze sou koutye, konpare ak konpare de teknoloji koutye popilè: Apache ActiveMQ ak Apache Kafka. Li pral dekri ka itilize yo ak ankourajman devlopman ki te mennen devlopè yo pran apwòch trè diferan nan menm zòn nan-message ant sistèm ak yon koutye entèmedyè. Nou pral gade teknoloji sa yo depi nan baz epi mete aksan sou enpak divès kalite chwa konsepsyon sou wout la. Ou pral jwenn yon konpreyansyon pwofon sou tou de pwodwi yo, yon konpreyansyon sou ki jan yo ta dwe epi yo pa ta dwe itilize, ak yon konpreyansyon sou sa pou chèche pou lè w ap konsidere lòt teknoloji messagerie nan lavni.

Anvan nou kòmanse, ann ale sou debaz yo.

Ki sa ki se yon sistèm Messaging e poukisa li nesesè?

Pou de aplikasyon yo kominike youn ak lòt, yo dwe premye defini yon koòdone. Defini koòdone sa a enplike nan chwazi yon transpò oswa pwotokòl, tankou HTTP, MQTT, oswa SMTP, ak negosye fòma mesaj yo pral echanje ant sistèm yo. Sa a ka yon pwosesis strik, tankou defini yon chema XML ak kondisyon chaj chaj mesaj, oswa li ka pi mwens fòmèl, tankou yon akò ant de devlopè ke kèk pati nan demann HTTP a pral genyen idantifyan kliyan an.

Osi lontan ke fòma mesaj yo ak lòd yo voye yo konsistan ant sistèm yo, yo ka kominike youn ak lòt san yo pa enkyete sou aplikasyon lòt sistèm nan. Entèn sistèm sa yo, tankou langaj pwogramasyon oswa kad yo itilize a, ka chanje sou tan. Osi lontan ke kontra a li menm konsève, entèraksyon an ka kontinye san chanjman ki soti nan lòt bò a. De sistèm yo efektivman dekouple (separe) pa koòdone sa a.

Sistèm mesaj anjeneral enplike yon entèmedyè ant de sistèm ki kominike pou plis dekouple (separe) moun k ap voye a ak moun k ap resevwa a oswa moun k ap resevwa yo. Nan ka sa a, sistèm mesaj la pèmèt moun k ap voye yon mesaj san yo pa konnen kote moun k ap resevwa a ye, si li aktif, oswa konbyen ka genyen.

Ann gade nan yon koup nan analoji pou kalite pwoblèm ke yon sistèm mesaj rezoud ak prezante kèk tèm debaz yo.

Pwen an pwen

Alexandra ale nan biwo lapòs la voye yon pakè adan. Li ale nan fenèt la epi li remèt anplwaye a pake a. Anplwaye a pran pake a epi li bay Alexandra yon resi. Adan pa bezwen lakay lè yo voye pakè a. Alexandra gen konfyans ke pakè a pral delivre bay Adam nan yon pwen nan lavni an epi li ka kontinye ale nan biznis li. Pita nan yon pwen Adan resevwa yon pake.

Sa a se yon egzanp yon modèl mesaj pwen-a-pwen. Biwo lapòs isit la aji kòm yon mekanis distribisyon pasèl, asire ke chak pasèl delivre yon fwa. Sèvi ak yon biwo lapòs separe zak voye yon pakè ak livrezon pakè a.
Nan sistèm mesaj klasik, modèl pwen-a-pwen aplike nan ke moun kap kriye. Keu la aji kòm yon tanpon FIFO (premye antre, premye soti) ke youn oswa plis konsomatè kapab abònman. Chak mesaj lage sèlman nan youn nan konsomatè yo abònman. Ke moun kap kriye tipikman eseye distribye mesaj san patipri nan mitan konsomatè yo. Se yon sèl konsomatè ki pral resevwa mesaj sa a.

Tèm "dirab" la aplike nan ke moun kap kriye. Fyab se yon pwopriyete sèvis ki asire ke sistèm nan messagerie ap pèsiste mesaj nan absans abònen aktif jiskaske yon konsomatè abònman nan keu la pou livrezon mesaj.

Fyab souvan konfonn ak pèsistans e byenke de tèm yo itilize yon fason pou yo ka ranplase, yo sèvi diferan fonksyon. Pèsistans detèmine si sistèm mesaj la ekri yon mesaj nan yon kalite depo ant resevwa li epi voye li bay konsomatè a. Mesaj yo voye nan keu a ka pèsistan oswa pa ka pèsistan.
Yo itilize mesaj pwen-a-pwen lè ka itilize a mande pou yon aksyon yon sèl fwa sou mesaj la. Egzanp yo enkli depoze lajan nan yon kont oswa ranpli yon lòd livrezon. Nou pral diskite pita poukisa sistèm mesaj la poukont li pa kapab bay livrezon yon sèl fwa ak poukisa ke moun kap kriye yo ka bay garanti livrezon. omwen yon fwa.

Piblikatè-Abònen

Gabriella konpoze nimewo konferans lan. Pandan li konekte ak konferans lan, li tande tout sa oratè a di, ansanm ak rès patisipan apèl yo. Lè li tande, li manke sa yo di. Lè li rekonekte, li kontinye tande sa y ap di.

Sa a se yon egzanp yon modèl mesaj pibliye-abònman. Konferans apèl aji kòm yon mekanis emisyon. Moun k ap pale a pa enpòtan pou konbyen moun ki sou apèl la kounye a - sistèm nan asire ke nenpòt moun ki konekte kounye a pral tande sa y ap di.
Nan sistèm mesaj klasik yo, se modèl mesaj pibliye-abònman aplike atravè tèt. Sijè bay menm metòd difizyon ak mekanis konferans lan. Lè yo voye yon mesaj nan yon sijè, li distribye pou tout itilizatè abònman yo.

Sijè yo anjeneral enfidèl (ki pa dirab). Menm jan ak yon moun k ap koute ki pa ka tande sa ki di nan yon apèl konferans lè moun k ap koute a dekonekte, abònen sijè yo rate nenpòt mesaj yo voye pandan yo offline. Pou rezon sa a, nou ka di ke sijè bay yon garanti livrezon pa plis pase yon fwa pou chak konsomatè.

Piblikasyon-abònman mesaj se tipikman itilize lè mesaj yo se enfòmasyon nan nati ak pèt la nan yon mesaj pa patikilyèman enpòtan. Pou egzanp, yon sijè ka transmèt lekti tanperati ki soti nan yon gwoup detèktè yon fwa pa segonn. Yon sistèm ki enterese nan tanperati aktyèl la epi ki abònman nan yon sijè pa pral enkyete si li rate yon mesaj - yon lòt pral rive nan fiti prè.

modèl ibrid

Sit entènèt magazen an mete mesaj lòd nan yon "cheu mesaj." Konsomatè prensipal mesaj sa yo se sistèm egzekitif la. Anplis de sa, sistèm kontwòl kontab la ta dwe gen kopi mesaj lòd sa yo pou swiv apre yo. Tou de sistèm yo pa ka pèmèt mesaj yo pase, menm si sistèm yo tèt yo pa disponib pou kèk tan. Sit wèb la pa ta dwe okouran de lòt sistèm yo.

Ka itilizasyon souvan mande pou yon konbinezon de pibliye-abònman ak modèl mesaj pwen-a-pwen, tankou lè plizyè sistèm mande pou yon kopi yon mesaj epi tou de fyab ak pèsistans yo oblije anpeche pèt mesaj.

Ka sa yo mande pou yon destinasyon (yon tèm jeneral pou moun kap kriye ak sijè) ki distribye mesaj fondamantalman kòm yon sijè, pou yo voye chak mesaj nan yon sistèm separe ki enterese nan mesaj sa yo, men tou, nan ki chak sistèm ka defini plizyè konsomatè ki resevwa fèk ap rantre. mesaj, ki se plis tankou yon keu. Kalite lekti nan ka sa a se yon fwa pou chak moun ki gen enterè. Destinasyon ibrid sa yo souvan mande durability pou si yon konsomatè ale offline, mesaj yo voye nan moman sa a yo resevwa apre konsomatè a rekonekte.

Modèl ibrid yo pa nouvo epi yo ka itilize nan pifò sistèm messagerie, ki gen ladan tou de ActiveMQ (via destinasyon vityèl oswa konpoze ki konbine sijè ak keu) ak Kafka (enplisite, kòm yon pwopriyete fondamantal nan konsepsyon destinasyon li).

Kounye a ke nou gen kèk tèminoloji debaz ak yon konpreyansyon sou sa nou ta ka itilize yon sistèm messagerie pou, an n desann nan detay yo.

Tradiksyon fè: tele.gg/middle_java

Pati sa a tradui: Chapit 3. Kafka

A kontinye…

Sous: www.habr.com

Add nouvo kòmantè