Kunzwisisa meseji broker. Kudzidza makanika ekutumira mameseji neActiveMQ uye Kafka. Chitsauko 1

Hello vose!

Ndakatanga kushandura bhuku diki:
Β«Kunzwisisa Message Brokers",
munyori: Jakub Korab, muparidzi: O'Reilly Media, Inc., zuva rekubudiswa: June 2017, ISBN: 9781492049296.

Kubva pakusuma bhuku:
"... Iri bhuku rinokudzidzisa maitiro ekufunga nezve broker messaging masisitimu, kuenzanisa uye kusiyanisa maviri akakurumbira bhuroka matekinoroji: Apache ActiveMQ uye Apache Kafka. Ichatsanangura nyaya dzekushandisa uye kurudziro yekusimudzira izvo zvakaita kuti vagadziri vavo vatore nzira dzakasiyana siyana kunzvimbo imwechete-kutumira mameseji pakati pemasisitimu ane yepakati broker. Isu tichatarisa kune aya matekinoroji kubva pasi uye nekusimbisa maitiro eakasiyana magadzirirwo sarudzo munzira. Iwe uchawana nzwisiso yakadzama yezvose zvigadzirwa, nzwisiso yemashandisiro avanofanira uye asingafanire kushandiswa, uye kunzwisisa kwezvekutarisisa kana uchifunga nezvemamwe matekinoroji ekutumira mameseji mune ramangwana. ... "

Zvikamu zvakashandurwa kusvika parizvino:
Chitsauko 1. Nhanganyaya
Chitsauko 3. Kafka

Ndichaisa zvitsauko zvakapedzwa sezvazvinoturikirwa.

CHITSAUKO 1

Nhanganyaya

System-to-system messaging ndiyo imwe yenzvimbo dzisinganzwisisike dzeIT. Semugadziri kana mugadziri wezvivakwa, unogona kunge uchinyatsoziva nezve akasiyana masisitimu uye dhatabhesi. Nekudaro, zvinokwanisika kuti iwe unongove neruzivo rwunopfuura nemashandisirwo emabroker-based messaging matekinoroji anoshanda. Kana iwe uchinzwa seizvi, usanetseka, iwe uri muboka rakanaka.

Vanhu kazhinji vane kushomeka kwekubata neiyo meseji mameseji. Ivo vanowanzo batanidza kune sisitimu yakagadzirwa kare, kana kurodha kugovera kubva paInternet, kuiisa muPROM uye tanga kunyora kodhi yayo. Mushure mekushandisa zvivakwa muPROM, mhedzisiro inogona kusanganiswa: mameseji anorasika nekuda kwekutadza, kutumira hakushande sezvawaitarisira, kana vatengesi "rembera" vagadziri vako kana kusatumira mameseji kune vatengi vako.

Zvinonzwika kujairika?

Chiitiko chakajairwa ndechekuti kodhi yako yemeseji inoshanda zvakanaka, kwenguva iripo. Kusvikira yamira kushanda. Iyi nguva inonyevenutsa kurinda kwemunhu mune yenhema pfungwa yekuchengeteka, zvichitungamira kune yakawanda kodhi yakavakirwa pakutenda kwenhema pamusoro peiyo yakakosha maitiro etekinoroji. Kana zvinhu zvatanga kushata, unotarisana nechokwadi chisingachinji: kuti hausati wanyatsonzwisisa maitiro ari pasi pechigadzirwa kana kutengeserana kwakasarudzwa nevanyori, sekuita maringe nekuvimbika, kana transaction maringe nehorizontal scalability. .

Pasina kunzwisisa kwakadzama kwemashandiro anoita vatengesi, vanhu vanotaura zvinonzwika zvine musoro nezve mameseji masystem, akadai se:

  • Iyo system haizomborasikirwe mameseji
  • Mameseji anozogadziriswa achitevedzana
  • Kuwedzera vatengi kuchaita kuti sisitimu ikurumidze
  • Mameseji anotumirwa kamwe chete

Sezvineiwo, zvimwe zvezvirevo izvi zvinobva pafungidziro dzinongoshanda mune mamwe mamiriro ezvinhu, nepo zvimwe zvisiri izvo.

Iri bhuku rinokudzidzisa maitiro ekufunga nezve broker-based messaging masisitimu, kuenzanisa uye kusiyanisa maviri akakurumbira bhuroka matekinoroji: Apache ActiveMQ uye Apache Kafka. Ichatsanangura nyaya dzekushandisa uye kurudziro yekusimudzira izvo zvakaita kuti vagadziri vavo vatore nzira dzakasiyana siyana kunzvimbo imwechete-kutumira mameseji pakati pemasisitimu ane yepakati broker. Isu tichatarisa kune aya matekinoroji kubva pasi uye nekusimbisa maitiro eakasiyana magadzirirwo sarudzo munzira. Iwe uchawana kunzwisisa kwakadzama kwezvose zviri zviviri zvigadzirwa, nzwisiso yekuti zvinofanirwa uye hazvifanirwe kushandiswa sei, uye kunzwisisa kwezvekutarisisa kana uchifunga mamwe matekinoroji ekutumira mameseji mune ramangwana.

Tisati tatanga, ngatiendei pamusoro pezvakakosha.

Chii chinonzi Messaging System uye nei ichidikanwa?

Kuti maapplication maviri ataurirane, anofanirwa kutanga atsanangura interface. Kutsanangura iyi interface kunosanganisira kusarudza chekufambisa kana protocol, seHTTP, MQTT, kana SMTP, uye kutaurirana mafomati emeseji anozochinjana pakati pehurongwa. Iyi inogona kunge iri maitiro akasimba, sekutsanangura XML schema ine meseji payload mutengo zvinodiwa, kana inogona kunge isiri yepamutemo, sechibvumirano pakati pevagadziri vaviri kuti chimwe chikamu chechikumbiro cheHTTP chinenge chine chiziviso chemutengi.

Chero bedzi chimiro chemeseji uye kurongeka kwadzinotumirwa kuchienderana pakati pemasystem, vanogona kutaurirana pasina kunetsekana nekuita kweimwe system. Iwo emukati meaya masisitimu, akadai semutauro wechirongwa kana chimiro chinoshandiswa, anogona kuchinja nekufamba kwenguva. Chero bedzi chibvumirano pachacho chichichengetwa, kupindirana kunogona kuenderera mberi pasina kuchinja kubva kune rumwe rutivi. Iwo maviri masisitimu akanyatso kubatanidzwa (akaparadzaniswa) neiyi interface.

Masisitimu ekutumira mameseji anowanzo sanganisira mumiriri pakati pemasisitimu maviri anodyidzana kuti awedzere kupatsanura (kuparadzanisa) anotumira kubva kune anogamuchira kana anogamuchira. Panyaya iyi, hurongwa hwekutumira mameseji hunobvumira mutumiri kutumira meseji asingazivi kuti ari kutumirwa aripi, kana ari kushanda, kana kuti kangani karipo.

Ngatitarisei kune akati wandei anofananidzira emhando dzezvinetso zvinogadziriswa nehurongwa hwekutumira mameseji uye kusuma mamwe mazwi akakosha.

Nongedzera-kune-Pfungwa

Alexandra anoenda kuposvo kunotumira Adam pasuru. Anoenda kuhwindo ndokutambidza mushandi pasuru yacho. Mushandi anotora pasuru uye anopa Alexandra risiti. Adamu haafanire kunge ari pamba kana pasuru yatumirwa. Alexandra ane chivimbo chekuti pasuru ichaendeswa kuna Adamu pane imwe nguva mune ramangwana uye anogona kuenderera mberi nebhizinesi rake. Gare gare pane imwe nguva Adamu anogamuchira pasuru.

Uyu muenzaniso wemuenzaniso wekutumira mameseji point-to-point. Iyo posvo pano inoshanda senzira yekugovera pasuru, kuve nechokwadi chekuti pasuru yega yega inounzwa kamwe chete. Kushandisa posvo kunopatsanura chiitiko chekutumira pasuru kubva pakuunzwa kwepakeji.
Mune zvekirasi mameseji masisitimu, iyo point-to-point modhi inoitwa kuburikidza mitsara. Mutsara unoshanda seFIFO (kutanga mukati, kutanga kunze) buffer iyo inogona kunyoreswa kune mumwe kana kupfuura mutengi. Mharidzo imwe neimwe inounzwa chete kune mumwe wevatengi vakanyoresa. Mitsetse inowanzoedza kugovera mameseji zvakaringana pakati pevatengi. Mutengi mumwe chete ndiye achagamuchira iyi meseji.

Izwi rokuti "kugara" rinoshandiswa kureva mitsetse. Kuvimbika inzvimbo yebasa inoita kuti mameseji arambe achitumira mameseji pasina vanonyorera kusvika mutengi anyoresa kumutsara wekutumira meseji.

Kuvimbika kunowanzovhiringidzwa ne kushingirira uye kunyangwe mazwi maviri aya achishandiswa zvakafanana, anoshanda mabasa akasiyana. Kushingirira kunoona kana iyo meseji system inonyora meseji kune imwe mhando yekuchengetedza pakati pekuigamuchira uye kuitumira kumutengi. Mameseji anotumirwa kumutsara anogona kana kusaramba.
Point-to-point meseji inoshandiswa kana iyo kesi yekushandisa inoda chiitiko chenguva imwe chete pane meseji. Mienzaniso inosanganisira kuisa mari muakaundi kana kuzadzisa odha yekutumira. Tichazokurukura gare gare kuti sei iyo mameseji system pachayo isingakwanise kupa-kamwe kuendesa uye nei mitsetse ichigona kupa vimbiso yekutumira. kamwechete.

Muparidzi-Munyori

Gabriella anofona nhamba yemusangano. Paanenge akabatana nemusangano, anonzwa zvese zvinotaurwa nemutauri, pamwe nevamwe vese vanofona. Paanoteerera, anopotsa zviri kutaurwa. Paanobatanidzwazve, anoramba achinzwa zviri kutaurwa.

Uyu muenzaniso wemuenzaniso wekutumira mameseji buritsa-kunyoresa. Kufona pamusangano kunoshanda senzira yekutepfenyura. Munhu ari kutaura haana basa kuti vangani vanhu vari kufona pari zvino - iyo system inovimbisa kuti chero akabatana parizvino anonzwa zviri kutaurwa.
Mune echinyakare mameseji masisitimu, iyo yekuburitsa-kunyorera meseji modhi inoiswa kuburikidza misoro. Musoro wenyaya unopa nzira imwe chete yekutepfenyura senzira yemusangano. Kana meseji yatumirwa kumusoro wenyaya, inoparadzirwa kune vese vakanyoresa vashandisi.

Misoro inowanzoitika kusavimbika (nondurable). Kungofanana nemuteereri asinganzwe zvinotaurwa pamusangano wekufona kana muteereri aregera, vanyoreri vemusoro vanopotsa chero meseji inotumirwa ivo vasiri pamhepo. Nechikonzero ichi, tinogona kutaura kuti misoro inopa vimbiso yekuendesa kwete kupfuura kamwe kumutengi wega wega.

Publish-kunyoresa mameseji anowanzo shandiswa kana mameseji aine ruzivo mune zvakasikwa uye kurasikirwa kwemeseji imwe hakuna kunyanya kukosha. Semuenzaniso, musoro unogona kutumira kuverenga kwekushisa kubva kuboka rema sensor kamwe pasekondi. Sisitimu inofarira tembiricha iripo uye inonyorera kumusoro wenyaya haizonetseki kana ikapotsa meseji - imwe ichasvika munguva pfupi iri kutevera.

mhando dzakasanganiswa

Webhusaiti yechitoro inoisa mameseji ekuodha mu "mutsara wemeseji." Mutengi mukuru weaya mameseji ndeye Executive system. Uye zvakare, iyo yekuongorora system inofanirwa kunge iine makopi eaya mameseji ekuodha yekutevera yekutevera. Masisitimu ese ari maviri haagone kutendera mameseji kuti apfuure, kunyangwe masisitimu acho pachawo asipo kwenguva yakati. Iyo webhusaiti haifanirwe kuziva mamwe masisitimu.

Nyaya dzekushandisa dzinowanzoda musanganiswa wekuburitsa-kunyorera uye point-to-point messaging modhi, senge apo akawanda masisitimu anoda kopi yemeseji uye zvese kuvimbika uye kushingirira kunodiwa kudzivirira kurasikirwa kwemeseji.

Mhosva idzi dzinoda kwainoenda (izwi rakajairwa remitsetse nemisoro) inogovera mameseji sechinyorwa, kuitira kuti meseji yega yega inotumirwa kune yakaparadzana sisitimu inofarira iwo mameseji, asiwo mune imwe neimwe system inogona kutsanangura vatengi vakati wandei vanogashira. mameseji, akafanana nemutsara. Mhando yekuverenga munyaya iyi ndeye kamwe chete kumubati wega wega. Idzi nzvimbo dzakasanganiswa dzinowanzoda kusimba kuitira kuti kana mutengi aenda kunze kwenyika, mameseji anotumirwa panguva iyoyo anogamuchirwa mushure mekunge mutengi abatana.

Mhando dzeHybrid hadzisi nyowani uye dzinogona kushandiswa mumasetimu mazhinji ekutumira mameseji, kusanganisira ese ari maviri ActiveMQ (kuburikidza neanoona kana akaumbwa nzvimbo dzinosanganisa misoro nemitsara) neKafka (zvisina kujeka, sechinhu chakakosha chekugadzirwa kwayo kwekwainoenda).

Zvino zvatava nemamwe mazwi ekutanga uye nzwisiso yezvataigona kushandisa sisitimu yekutumira mameseji, ngatidzikei kune izvo.

Shanduro yaitwa: tele.gg/middle_java

Chikamu chinotevera chakashandurwa: Chitsauko 3. Kafka

Zvichaenderera mberi…

Source: www.habr.com

Voeg