E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ei Habr!

Matou te faamanatu atu ia te oe le mulimuli i le tusi e uiga i Kafka ua matou lomia faasalalau se galuega e tutusa lelei e uiga i le faletusi Kafka Streams API.

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Mo le taimi nei, o loʻo aʻoaʻoina e le nuʻu le tapulaʻa o lenei meafaigaluega mamana. O lea la, o se tusiga na faʻasalalau talu ai nei, o le faʻaliliuga lea matou te fia faʻafeiloaʻi atu ia te oe. Mai lona lava poto masani, o loʻo taʻu mai e le tusitala pe faʻafefea ona liliu Kafka Streams i se faʻamaumauga tuʻufaʻatasia. Fiafia faitau!

Faletusi a Apache Alia o Kafka fa'aoga i le lalolagi atoa i atina'e mo le tufatufaina atu o le fa'agaioia o vaitafe i luga o Apache Kafka. O se tasi o vaega le talisapaiaina o lenei faʻavae e mafai ai e oe ona teuina le setete faʻapitonuʻu na gaosia e faʻavae i luga o le faʻaogaina o filo.

I totonu o lenei tusiga, o le a ou taʻuina atu ia te oe le auala na mafai ai e le matou kamupani ona faʻaaoga lelei lenei avanoa pe a atiaʻe se oloa mo le puipuiga o le cloud application. I le faʻaaogaina o le Kafka Streams, na matou fatuina ai le microservices faʻasoa, o ia mea taʻitasi e avea o se faʻaoga sese-faʻapalepale ma avanoa tele o faʻamatalaga faʻatuatuaina e uiga i le tulaga o mea faitino i totonu o le polokalama. Mo matou, o se laasaga lea i luma e le gata i tulaga o le faʻatuatuaina ma le faigofie o le lagolago.

Afai e te fiafia i se isi auala e mafai ai ona e faʻaogaina se faʻamaumauga autu e tasi e lagolago ai le tulaga aloaia o au mea faitino, faitau i ai, o le a manaia...

Aisea na matou manatu ai ua oʻo i le taimi e sui ai le auala matou te galulue ai ma le setete faʻasoa

Matou te manaʻomia le faʻatumauina o le tulaga o mea eseese e faʻavae i luga o lipoti a le sooupu (mo se faʻataʻitaʻiga: na osofaia le nofoaga)? Aʻo leʻi malaga atu i Kafka Streams, e masani ona matou faʻalagolago i se tasi nofoaga autu autu (+ auaunaga API) mo le pulega o le setete. O lenei faiga e iai ona faʻaletonu: aso tulaga faigata o le faatumauina o le tumau ma le fa'amaopoopo e avea ma lu'itau moni. E mafai ona avea le database ma se fa'alavelave po'o le i'u i totonu tulaga tuuga ma mafatia i le le mautonu.

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 1: Se fa'ata'ita'iga masani vaelua-setete va'aia a'o le'i faia le suiga i
Kafka ma Kafka Streams: o loʻo faʻaalia e le au ofisa o latou manatu e ala i le API, faʻafouina le setete e faʻatatau i se nofoaga tutotonu

Feiloai i le Kafka Streams, e faafaigofie ai ona fausia ni auaunaga tau microservices

Pe a ma le tausaga talu ai, na matou filifili ai e vaʻavaʻai totoʻa i a matou faʻasalalauga faʻasalalauga faʻatasi e foia ai nei mataupu. Na vave ona matou filifili e faʻataʻitaʻi le Kafka Streams - matou te iloa le faʻaogaina, maualuga le avanoa ma le faʻapalepale o mea sese, o le a le tele o le faʻaogaina o galuega (suiga, e aofia ai ma tulaga faʻapitoa). Naʻo le mea na matou manaʻomia, ae le o le taʻua o le matua ma le faʻatuatuaina o le faiga o feʻau i Kafka.

O auaunaga laiti ta'itasi na matou faia na fausia i luga o se fa'ata'ita'iga a Kafka Streams ma se fa'aoga faigofie. E aofia ai le 1) o se puna 2) o se masini faʻapipiʻi ma se faleoloa faʻatau-taua pea 3) se pusa:

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 2: Le fa'aogaina o le topology oa tatou fa'asalalauga fa'ata'ita'iga mo microservices tulaga. Manatua o loʻo i ai foi se fale teu oloa iinei o loʻo i ai metadata fuafuaina.

I lenei faiga fou, e tu'ufa'atasia e sui o fe'au o lo'o fafaga i le autu autu, ma tagata fa'atau-fai mai, o se auaunaga fa'asilasilaga meli-maua le tulaga fa'asoa fa'akomepiuta e ala i le atigi (autu fa'aulu).

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 3: Fa'ata'ita'iga fou fa'agasolo galuega mo se fa'ata'ita'iga ma fefa'asoaa'i microservices: 1) fa'atupuina e le sooupu se fe'au e taunu'u i le autu autu a Kafka; 2) o se microservice ma le setete fefaʻasoaaʻi (faʻaaogaina o le Kafka Streams) faʻatautaia ma tusia le setete fuafuaina i le autu Kafka mulimuli; mulimuli ane 3) talia e tagata fa'atau le setete fou

Ei, e matua aoga lava lenei faleoloa fa'atau-taua!

E pei ona taʻua i luga, o loʻo i ai i la matou faʻasalalauga faʻasalalauga faʻatasi se faleoloa autu-taua. Na matou maua le tele o filifiliga mo le faʻaaogaina, ma e lua o latou o loʻo faʻamatalaina i lalo.

Filifiliga #1: Fa'aoga se faleoloa fa'atau-taua mo fa'atatauga

O le matou faleoloa autu muamua sa i ai faʻamatalaga fesoasoani matou te manaʻomia mo faʻatusatusaga. Mo se faʻataʻitaʻiga, i nisi tulaga o le setete fefaʻasoaaʻi na fuafuaina e le faʻavae o le "tele palota". E mafai e le faleteuoloa ona tu'uina uma lipoti lata mai a le sooupu i le tulaga o se mea. Ma, ina ua matou mauaina se lipoti fou mai le tasi sui poʻo le isi, e mafai ona matou faʻasaoina, toe aumai lipoti mai isi sui uma e uiga i le tulaga o le mea lava e tasi mai le teuina, ma toe fai le faʻatusatusaga.
Ata 4 o loʻo i lalo o loʻo faʻaalia ai le auala na matou faʻaalia ai le ki/taua faleoloa i le auala e faʻaogaina ai le gaosiga ina ia mafai ai ona faʻagasolo le feʻau fou.

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Fa'ata'ita'iga 4: Matou te tatalaina le avanoa i le faleoloa autu-taua mo le faiga o le gaosiga (pe a uma lenei, o tusitusiga uma e galulue ma le setete fa'asoa e tatau ona fa'atino le metotia. doProcess)

Filifiliga #2: Fausia se CRUD API i luga o le Kafka Streams

I le fa'amautuina o la matou galuega fa'avae, na amata ona matou taumafai e tusi se RESTful CRUD API mo a matou auaunaga fa'asoa a le setete. Matou te mananaʻo ia mafai ona toe maua le tulaga o nisi poʻo mea uma, faʻapea foʻi ma le seti pe aveese le tulaga o se mea (faʻaoga mo le lagolago i tua).

Ina ia lagolagoina uma le Get State APIs, so'o se taimi lava matou te mana'omia ai le toe fa'atatauina o le setete i le taimi o fa'agaioiga, matou te teuina i totonu o se fale-taua fa'atau mo se taimi umi. I lenei tulaga, e faigofie tele le faʻatinoina o se API faʻaaoga se tasi faʻataʻitaʻiga o Kafka Streams, e pei ona faʻaalia i le lisi o loʻo i lalo:

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 5: Fa'aaogāina o le faleoloa fa'atau-taua ua fausia e maua ai le tulaga o se mea

Faʻafouina le tulaga o se mea e ala i le API e faigofie foi ona faʻatinoina. O le mea moni, pau lava le mea e tatau ona e faia o le fatuina lea o se tagata gaosi Kafka ma faʻaaogaina e fai ai se faʻamaumauga e aofia ai le setete fou. E fa'amautinoaina o fe'au uma e fa'atupuina e ala i le API o le a fa'agaioia i le auala lava e tasi e pei ona maua mai i isi tagata gaosi oloa (fa'ata'ita'iga sui).

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 6: E mafai ona e setiina le tulaga o se mea e faʻaaoga ai le gaosiga o Kafka

Laititi lavelave: Kafka e tele vaega

O le isi, matou te manaʻo e tufatufa atu le uta faʻagaioiga ma faʻaleleia avanoa e ala i le tuʻuina atu o se fuifui o microservices fefaʻasoaaʻi i le faʻaaliga. O le setiina o se savili: o le taimi lava na matou faʻatulagaina ai taimi uma e faʻatautaia i lalo o le ID ID tutusa (ma le server bootstrap tutusa), toetoe lava o isi mea uma na faia otometi. Na matou fa'ama'oti fo'i o autu ta'itasi o le a aofia ai ni vaega se tele, ina ia mafai ai ona tu'uina atu i fa'ata'ita'iga ta'itasi se vaega o ia vaega.

O le a ou taʻua foi o se faiga masani le faia o se kopi faaleoleo o le faleoloa o le setete ina ia, mo se faʻataʻitaʻiga, i le tulaga o le toe faʻaleleia pe a maeʻa le toilalo, faʻafeiloaʻi lenei kopi i se isi faʻataʻitaʻiga. Mo faleoloa taʻitasi i Kafka Streams, o se autu toe faia ma se ogalaau suiga (lea e siaki ai faʻamatalaga faʻapitonuʻu). O le mea lea, e lagolagoina pea e Kafka le faleoloa a le setete. O le mea lea, i le tulaga o le toilalo o se tasi poʻo se isi Kafka Streams faʻataʻitaʻiga, e mafai ona vave toe faʻaleleia le faleoloa o le setete i se isi faʻataʻitaʻiga, lea o le a alu ai vaega tutusa. O a matou suʻega na faʻaalia ai e faia lenei mea i sekone, e tusa lava pe faitau miliona faʻamaumauga i totonu o le faleoloa.

O le si'itia mai se tasi microservice ma fefa'asoaa'i setete i se fuifui o microservices, o le a fa'aitiitia le taua le fa'atinoina o le Get State API. I le tulaga fou, o le faleoloa a le setete o microservice taitasi o loʻo i ai naʻo se vaega o le ata atoa (o mea faitino na faʻapipiʻiina o latou ki i se vaeluaga patino). E tatau ona matou fuafuaina po o le a le tulaga o loʻo i ai le tulaga o le mea matou te manaʻomia, ma matou faia lenei mea e faʻavae i luga o le filo metadata, e pei ona faʻaalia i lalo:

E le gata o le gaioiga: Faʻafefea ona matou faia se faʻamaumauga tuʻufaʻatasia mai Kafka Streams, ma o le a le mea na maua mai ai

Ata 7: Faʻaaogaina o metadata stream, matou te fuafua mai le fea faʻataʻitaʻiga e fesiligia ai le tulaga o le mea e manaʻomia; sa fa'aogaina se faiga fa'apena ile GET ALL API

Sini Autu

O faleoloa a le Setete i Kafka Streams e mafai ona avea o se faʻamaumauga tuʻufaʻatasia faʻamaonia,

  • faia pea i Kafka
  • E faigofie ona fausia se CRUD API i luga o sea faiga
  • O le taulimaina o le tele o vaega e fai si lavelave
  • E mafai fo'i ona fa'aopoopo se tasi po'o le sili atu fo'i faleoloa a le setete i luga o fa'asalalauga e teu ai fa'amaumauga fesoasoani. O lenei filifiliga e mafai ona faʻaaoga mo:
  • Taofi umi o faʻamaumauga e manaʻomia mo faʻatusatusaga i le taimi o le faʻaogaina o vaitafe
  • Taofi umi o fa'amaumauga e ono aoga i le isi taimi e tu'uina atu ai le fa'ata'ita'iga
  • sili atu...

O nei mea ma isi mea lelei e faʻaogaina ai Kafka Streams mo le faʻatumauina o le tulaga o le lalolagi i se faiga faʻasoa e pei o matou. Kafka Streams ua faʻamaonia e matua faʻatuatuaina i le gaosiga (toetoe lava leai se feʻau na leiloa talu ona faʻapipiʻiina), ma matou te mautinoa o ona gafatia e le gata ai iina!

puna: www.habr.com

Faaopoopo i ai se faamatalaga