Ndewo, Habr!
Anyị na-echetara gị na-eso akwụkwọ banyere
Ka ọ dị ugbu a, ndị obodo na-amụta oke ngwa ọrụ a dị ike. Yabụ, e bipụtara otu akụkọ n'oge na-adịbeghị anya, ntụgharị asụsụ nke anyị ga-achọ iwebata gị. Site n'ahụmahụ nke ya, onye edemede na-agwa otu esi atụgharị Kafka Streams na nchekwa data ekesa. Nwee obi ụtọ ịgụ akwụkwọ!
Ọbá akwụkwọ Apache
N'isiokwu a, m ga-agwa gị ka ụlọ ọrụ anyị siri nwee ike iji ohere a mee ihe n'ụzọ bara uru mgbe ọ na-emepụta ngwaahịa maka nchekwa ngwa igwe ojii. N'iji Kafka Streams, anyị kere òkè steeti microservices, nke ọ bụla n'ime ha na-eje ozi dị ka mmejọ na-anabata na ukwuu dị isi iyi nke ozi a pụrụ ịdabere na banyere ọnọdụ nke ihe dị na sistemụ. Maka anyị, nke a bụ nzọụkwụ na-aga n'ihu ma n'ihe gbasara ntụkwasị obi na ịdị mfe nke nkwado.
Ọ bụrụ na ị nwere mmasị na ụzọ ọzọ nke na-enye gị ohere iji otu nchekwa data etiti na-akwado ọnọdụ nke ihe gị, gụọ ya, ọ ga-adọrọ mmasị ...
Ihe mere anyị ji chee na ọ bụ oge ịgbanwe ụzọ anyị si arụ ọrụ na steeti òkè
Anyị kwesịrị idowe ọnọdụ nke ihe dị iche iche dabere na akụkọ ndị nnọchite anya (dịka ọmụmaatụ: saịtị a na-awakpo)? Tupu ịkwaga na iyi Kafka, anyị na-adaberekarị na otu nchekwa data etiti (+ API service API) maka njikwa steeti. Usoro a nwere ihe ndọghachi azụ ya:
Onyonyo 1: Ọdịiche dị n'ụdị nkewa-steeti hụrụ tupu mgbanwe gaa
Kafka na Kafka iyi: ndị ọrụ na-ekwupụta echiche ha site na API, a na-agbakọ steeti emelitere site na nchekwa data etiti
Zute iyi iyi Kafka, na-eme ka ọ dị mfe ịmepụta microservices steeti
Ihe dị ka otu afọ gara aga, anyị kpebiri ileba anya nke ọma na ọnọdụ steeti anyị na-ekekọrịta iji dozie okwu ndị a. Anyị kpebiri ozugbo ịnwale Kafka Streams - anyị maara otú scalable, ukwuu dị na mmejọ na-anabata ya, kedu ihe bara ụba gụgharia ọrụ ọ nwere (mgbanwe, gụnyere steeti). Naanị ihe dị anyị mkpa, ọ bụghị ịkọwapụta etu usoro izi ozi siri bụrụ nke tozuru oke na ntụkwasị obi na Kafka.
Nke ọ bụla n'ime microservices mara mma anyị mepụtara bụ nke e wuru n'elu ihe atụ Kafka iyi nwere topology dị mfe. Ọ nwere 1) isi iyi 2) ihe nrụpụta nwere ụlọ ahịa igodo bara uru na-adịgide adịgide 3) sink:
Onyonyo 2: Topology ndabara nke usoro mgbasa ozi anyị maka ọrụ microservice mara mma. Rịba ama na enwekwara ebe nchekwa ebe a nwere metadata atụmatụ.
N'ime usoro ọhụrụ a, ndị ọrụ na-edepụta ozi ndị a na-enye n'ime isiokwu isi mmalite, na ndị na-azụ ahịa-na-ekwu, ọrụ ngosi ozi-nata steeti agbakọtara site na sink (isiokwu mmepụta).
Onyonyo 3: Ọmụmaatụ ọrụ ọhụrụ na-erugharị maka ọnọdụ nwere ikesa microservices: 1) onye nnọchi anya na-ewepụta ozi nke rutere na isiokwu isi mmalite Kafka; 2) a microservice na òkè ala (iji Kafka Streams) hazie ya na-ede gbakọọ ala na ikpeazụ Kafka isiokwu; mgbe nke a gasịrị 3) ndị na-azụ ahịa na-anabata steeti ọhụrụ
Hey, ụlọ ahịa igodo bara uru arụnyere bara ezigbo uru!
Dịka ekwuru n'elu, topology steeti anyị na-ekekọrịta nwere ụlọ ahịa bara uru. Anyị chọtara ọtụtụ nhọrọ maka iji ya, na abụọ n'ime ha ka akọwara n'okpuru.
Nhọrọ #1: Jiri ụlọ ahịa isi-ọnụ ahịa maka ịgbakọ
Ụlọ ahịa igodo mbụ anyị nwere data enyemaka anyị chọrọ maka mgbako. Dịka ọmụmaatụ, n'ọnọdụ ụfọdụ, a na-ekpebi steeti nkekọrịta site n'ụkpụrụ nke "votu ọtụtụ". Ebe nchekwa ahụ nwere ike ijide akụkọ ndị nnọchi anya kacha ọhụrụ gbasara ọkwa ụfọdụ ihe. Mgbe ahụ, mgbe anyị nwetara akụkọ ọhụrụ site n'aka otu onye ọrụ ma ọ bụ ọzọ, anyị nwere ike ịchekwa ya, weghachite akụkọ sitere na ndị ọrụ ndị ọzọ niile gbasara ọnọdụ nke otu ihe na nchekwa, ma megharịa mgbako ahụ.
Ọgụgụ 4 dị n'okpuru na-egosi otu anyị si kpughee ụlọ ahịa igodo/ọnụ ahịa na usoro nhazi nke processor ka enwere ike hazie ozi ọhụrụ ahụ.
Ihe atụ 4: Anyị na-emeghe ohere ịnweta ụlọ ahịa isi-uru maka usoro nhazi nke nhazi (mgbe nke a gasịrị, edemede ọ bụla nke na-arụ ọrụ na steeti òkè ga-emejuputa usoro ahụ. doProcess
)
Nhọrọ #2: Ịmepụta API CRUD n'elu Kafka Streams
N'ịbụ onye guzobechara usoro ọrụ anyị bụ isi, anyị malitere ịgbalị ide API RESTful CRUD maka ọrụ microservices steeti anyị na-ekekọrịta. Anyị chọrọ inwe ike iweghachite ọnọdụ ụfọdụ ma ọ bụ ihe niile, yana ịtọ ma ọ bụ wepụ ọnọdụ nke ihe (bara uru maka nkwado azụ azụ).
Iji kwado Get State APIs niile, mgbe ọ bụla anyị chọrọ ịtụgharị steeti ahụ n'oge nhazi, anyị na-echekwa ya na ụlọ ahịa igodo bara uru ruo ogologo oge. N'okwu a, ọ na-aghọ ihe dị mfe iji mejuputa API dị otú ahụ site na iji otu ihe atụ nke Kafka Streams, dị ka egosiri na ndepụta dị n'okpuru:
Ọgụgụ 5: Iji ụlọ ahịa igodo-uru arụnyere n'ime ya iji nweta ọnọdụ agbagoro agbagoro nke ihe
Imelite ọnọdụ ihe site na API dịkwa mfe iji mejuputa ya. N'ụzọ bụ isi, ihe niile ị ga-eme bụ ịmepụta onye na-emepụta Kafka ma jiri ya mee ihe ndekọ nke nwere steeti ọhụrụ. Nke a na-achọpụta na a ga-ahazi ozi niile sitere na API n'otu ụzọ ahụ nke enwetara n'aka ndị nrụpụta ndị ọzọ (dịka ndị nnọchi anya).
Ọgụgụ 6: Ị nwere ike ịtọ ọnọdụ ihe site na iji onye na-emepụta Kafka
Obere mgbagwoju anya: Kafka nwere ọtụtụ akụkụ
Ọzọ, anyị chọrọ ikesa ibu nhazi ma melite nnweta site n'inye ụyọkọ nke microservices steeti na-ekekọrịta n'otu ọnọdụ. Ntọlite bụ ikuku: ozugbo anyị haziri oge niile ka ọ na-agba ọsọ n'okpuru otu ngwa ID (yana otu sava bootstrap), ihe fọrọ nke nta ka ọ bụrụ ihe ọ bụla mere na-akpaghị aka. Anyị kọwapụtakwara na isiokwu isi mmalite ọ bụla ga-enwe akụkụ dị iche iche, ka e wee kenye ihe atụ ọ bụla nkebi nkebi dị otú ahụ.
M ga-ekwukwa na ọ bụ ihe a na-emekarị iji mee ihe ndabere nke ụlọ ahịa steeti ka, dịka ọmụmaatụ, ọ bụrụ na mgbake mgbe ọdịda gasịrị, nyefee akwụkwọ a na ihe atụ ọzọ. Maka ụlọ ahịa steeti ọ bụla na Kafka Streams, a na-eji ndekọ mgbanwe mepụta isiokwu emegharịgharịrị (nke na-akwado mmelite mpaghara). Ya mere, Kafka na-akwado ụlọ ahịa steeti mgbe niile. Ya mere, n'ọnọdụ nke ọdịda nke otu ma ọ bụ ọzọ Kafka Streams, enwere ike weghachite ụlọ ahịa steeti ngwa ngwa na ihe atụ ọzọ, ebe akụkụ ndị kwekọrọ na ya ga-aga. Nlele anyị egosila na a na-eme nke a n'ime ihe dị ka sekọnd, ọbụlagodi na enwere nde nde ndekọ na ụlọ ahịa ahụ.
N'ịga site na otu microservice nwere steeti ekekọrịtara gaa na ụyọkọ nke microservices, ọ na-aghọ ihe na-adịchaghị mkpa iji mejuputa Get State API. N'ọnọdụ ọhụrụ, ụlọ ahịa steeti nke microservice ọ bụla nwere naanị akụkụ nke foto zuru ezu (ihe ndị igodo ha debere na otu akụkụ). Anyị ga-ekpebi nke ihe atụ nwere ọnọdụ nke ihe anyị chọrọ, ma anyị mere nke a dabere na eri metadata, dị ka egosiri n'okpuru:
Onyonyo 7: Iji metadata iyi, anyị na-ekpebi site na ihe atụ iji jụọ ọnọdụ ihe achọrọ; Eji usoro yiri nke a jiri GET ALL API
Nchọta Isi
Ụlọ ahịa steeti dị na Kafka Streams nwere ike ije ozi dị ka nchekwa data ekesa nke ọma,
- na-emegharịgharị mgbe niile na Kafka
- Enwere ike iwulite API CRUD n'elu usoro dị otú ahụ
- Ijikwa ọtụtụ akụkụ dị ntakịrị mgbagwoju anya
- Ọ ga-ekwe omume ịgbakwunye otu ụlọ ahịa steeti ma ọ bụ karịa na topology iyi iji chekwaa data inyeaka. Enwere ike iji nhọrọ a maka:
- Nchekwa ogologo oge nke data achọrọ maka mgbako n'oge nhazi iyi
- Nchekwa ogologo oge nke data nwere ike ịba uru n'oge ọzọ ewepụtara ihe atụ nkwanye
- ọtụtụ ihe...
Uru ndị a na ndị ọzọ na-eme ka iyi Kafka dabara nke ọma maka idowe steeti ụwa na sistemụ kesara dị ka nke anyị. Kafka Streams egosila na a pụrụ ịdabere na ya na mmepụta (anyị enwebeghị ozi ọ bụla kemgbe ebuga ya), anyị nwere obi ike na ike ya agaghị akwụsị ebe ahụ!
isi: www.habr.com