Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Hey Habr!

A leti pe awọn wọnyi iwe nipa Kafka a ti ṣe atẹjade iṣẹ kan ti o nifẹ si deede nipa ile-ikawe naa Kafka ṣiṣan API.

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Ni bayi, agbegbe n kan kọ awọn opin ti irinṣẹ agbara yii. Nitorinaa, nkan kan ti tẹjade laipẹ, itumọ eyiti a yoo fẹ lati ṣafihan rẹ si. Lati iriri tirẹ, onkọwe sọ bi o ṣe le tan Awọn ṣiṣan Kafka sinu ibi ipamọ data pinpin. Gbadun kika!

Apache ìkàwé Awọn ṣiṣan Kafka ti a lo ni agbaye ni awọn ile-iṣẹ fun iṣelọpọ ṣiṣan kaakiri lori oke Apache Kafka. Ọkan ninu awọn abala ti a ko mọriri ti ilana yii ni pe o fun ọ laaye lati ṣafipamọ ipinlẹ agbegbe ti o da lori sisẹ okun.

Ninu nkan yii, Emi yoo sọ fun ọ bii ile-iṣẹ wa ṣe ṣakoso lati lo anfani yii ni anfani nigba idagbasoke ọja kan fun aabo ohun elo awọsanma. Lilo Awọn ṣiṣan Kafka, a ṣẹda awọn microservices ipinlẹ pinpin, ọkọọkan eyiti o ṣiṣẹ bi ifarada-aṣiṣe ati orisun ti o ga julọ ti alaye igbẹkẹle nipa ipo awọn nkan ninu eto naa. Fun wa, eyi jẹ igbesẹ siwaju mejeeji ni awọn ofin ti igbẹkẹle ati irọrun atilẹyin.

Ti o ba nifẹ si ọna yiyan ti o fun ọ laaye lati lo aaye data aarin kan ṣoṣo lati ṣe atilẹyin ipo iṣe ti awọn nkan rẹ, ka, yoo jẹ ohun ti o nifẹ…

Kini idi ti a ro pe o to akoko lati yi ọna ti a ṣiṣẹ pẹlu ipinlẹ pinpin

A nilo lati ṣetọju ipo ti awọn nkan oriṣiriṣi ti o da lori awọn ijabọ aṣoju (fun apẹẹrẹ: aaye naa wa labẹ ikọlu)? Ṣaaju ki o to lọ si Awọn ṣiṣan Kafka, a nigbagbogbo gbarale ibi data aarin kan ṣoṣo (+ API iṣẹ) fun iṣakoso ipinlẹ. Ọna yii ni awọn alailanfani rẹ: ọjọ lekoko ipo mimu aitasera ati mimuuṣiṣẹpọ di ipenija gidi kan. Awọn database le di a igo tabi mu soke ni ije ipo ati ki o jiya lati unpredictability.

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Nọmba 1: Oju iṣẹlẹ pipin-ipinlẹ aṣoju ti a rii ṣaaju iyipada si
Awọn ṣiṣan Kafka ati Kafka: awọn aṣoju ṣe ibasọrọ awọn iwo wọn nipasẹ API, ipo imudojuiwọn jẹ iṣiro nipasẹ aaye data aarin kan

Pade Kafka ṣiṣan, ṣiṣe awọn ti o rọrun lati ṣẹda pínpín ipinle microservices

Ni ọdun kan sẹhin, a pinnu lati ṣe akiyesi lile ni awọn oju iṣẹlẹ ipinlẹ ti a pin lati koju awọn ọran wọnyi. A pinnu lẹsẹkẹsẹ lati gbiyanju Awọn ṣiṣan Kafka - a mọ bi o ṣe le ṣe iwọn, ti o wa pupọ ati ifarada-aṣiṣe, kini iṣẹ ṣiṣe ṣiṣanwọle ọlọrọ ti o ni (awọn iyipada, pẹlu awọn ipinlẹ). O kan ohun ti a nilo, kii ṣe lati darukọ bi eto fifiranṣẹ ti dagba ati igbẹkẹle ti di ni Kafka.

Ọkọọkan awọn iṣẹ microservices ti ipinlẹ ti a ṣẹda ni a kọ si ori apẹẹrẹ Awọn ṣiṣan Kafka kan pẹlu topology ti o rọrun kan. O ni 1) orisun kan 2) ero isise kan pẹlu ile itaja iye-bọtini ti o tẹpẹlẹ 3) ifọwọ kan:

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Nọmba 2: Topology aiyipada ti awọn iṣẹlẹ ṣiṣanwọle wa fun awọn iṣẹ microservices ti ipinlẹ. Ṣe akiyesi pe ibi ipamọ tun wa nibi ti o ni awọn metadata igbero ninu.

Ni ọna tuntun yii, awọn aṣoju ṣajọ awọn ifiranṣẹ ti o jẹun sinu koko-ọrọ orisun, ati awọn onibara-sọ, iṣẹ ifitonileti meeli kan-gba ipo ti a pin iṣiro nipasẹ ifọwọ (akọjade jade).

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Ṣe nọmba 3: Apeere tuntun ṣiṣan iṣẹ-ṣiṣe fun oju iṣẹlẹ pẹlu awọn iṣẹ microservices ti o pin: 1) aṣoju n ṣe ifilọlẹ ifiranṣẹ ti o de ni koko orisun Kafka; 2) a microservice pẹlu pin ipinle (lilo Kafka ṣiṣan) ilana ti o ati ki o Levin ipinle iṣiro to ik Kafka koko; lẹhin eyi 3) awọn onibara gba ipinle titun

Hey, ile itaja iye-bọtini ti a ṣe sinu jẹ iwulo gaan gaan!

Gẹgẹbi a ti sọ loke, topology ipinlẹ ipinlẹ wa ni ile itaja iye-bọtini kan ninu. A ri awọn aṣayan pupọ fun lilo rẹ, ati meji ninu wọn ti wa ni apejuwe ni isalẹ.

Aṣayan #1: Lo ile-itaja iye-bọtini fun awọn iṣiro

Ile-itaja iye akọkọ wa ni data iranlọwọ ti a nilo fun awọn iṣiro. Fun apẹẹrẹ, ni awọn igba miiran ipinlẹ ti o pin jẹ ipinnu nipasẹ ilana ti “awọn ibo pupọ julọ”. Ibi ipamọ le mu gbogbo awọn ijabọ aṣoju tuntun lori ipo ti nkan kan. Lẹhinna, nigba ti a ba gba ijabọ tuntun lati ọdọ aṣoju kan tabi omiiran, a le fipamọ, gba awọn ijabọ lati ọdọ gbogbo awọn aṣoju miiran nipa ipo ohun kanna lati ibi ipamọ, ki o tun ṣe iṣiro naa.
Nọmba 4 ti o wa ni isalẹ fihan bi a ṣe ṣafihan ile itaja bọtini / iyeye si ọna iṣelọpọ ero isise naa ki ifiranṣẹ tuntun le lẹhinna ni ilọsiwaju.

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Apejuwe 4: A ṣii iraye si ile itaja iye-bọtini fun ọna sisẹ ero isise (lẹhin eyi, gbogbo iwe afọwọkọ ti o ṣiṣẹ pẹlu ipinlẹ pinpin gbọdọ ṣe ilana naa doProcess)

Aṣayan #2: Ṣiṣẹda API CRUD lori oke Awọn ṣiṣan Kafka

Lehin ti iṣeto sisan iṣẹ-ṣiṣe ipilẹ wa, a bẹrẹ lati gbiyanju lati kọ RESTful CRUD API fun awọn iṣẹ microservices ipinlẹ wa. A fẹ lati ni anfani lati gba ipo diẹ ninu tabi gbogbo awọn nkan pada, bakannaa ṣeto tabi yọ ipo ohun kan kuro (wulo fun atilẹyin ẹhin).

Lati ṣe atilẹyin fun gbogbo Gba Awọn API Ipinle, nigbakugba ti a nilo lati tun ṣe iṣiro ipinlẹ lakoko sisẹ, a tọju rẹ sinu ile itaja iye-bọtini ti a ṣe sinu fun igba pipẹ. Ni ọran yii, o rọrun pupọ lati ṣe iru API ni lilo apẹẹrẹ kan ti Awọn ṣiṣan Kafka, bi o ṣe han ninu atokọ ni isalẹ:

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Nọmba 5: Lilo ile-itaja iye-itumọ ti a ṣe sinu lati gba ipo ti a ti ṣaju tẹlẹ ti ohun kan

Ṣiṣe imudojuiwọn ipo ohun kan nipasẹ API tun rọrun lati ṣe. Ni ipilẹ, gbogbo ohun ti o nilo lati ṣe ni ṣẹda olupilẹṣẹ Kafka kan ati lo lati ṣe igbasilẹ ti o ni ipinlẹ tuntun. Eyi ni idaniloju pe gbogbo awọn ifiranṣẹ ti ipilẹṣẹ nipasẹ API yoo ni ilọsiwaju ni ọna kanna bi awọn ti o gba lati ọdọ awọn olupilẹṣẹ miiran (fun apẹẹrẹ awọn aṣoju).

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Nọmba 6: O le ṣeto ipo ohun kan nipa lilo olupilẹṣẹ Kafka

Idiyele kekere: Kafka ni ọpọlọpọ awọn ipin

Nigbamii ti, a fẹ kaakiri ẹru sisẹ ati ilọsiwaju wiwa nipasẹ ipese iṣupọ ti awọn iṣẹ microservices ipinlẹ pinpin fun oju iṣẹlẹ kan. Iṣeto jẹ afẹfẹ: ni kete ti a tunto gbogbo awọn iṣẹlẹ lati ṣiṣẹ labẹ ID ohun elo kanna (ati awọn olupin bootstrap kanna), o fẹrẹ jẹ ohun gbogbo miiran ni a ṣe laifọwọyi. A tun ṣalaye pe koko-ọrọ orisun kọọkan yoo ni awọn ipin pupọ, ki apẹẹrẹ kọọkan le jẹ ipin ipin kan ti iru awọn ipin.

Emi yoo tun darukọ pe o jẹ aṣa ti o wọpọ lati ṣe ẹda afẹyinti ti ile-itaja ipinle ki, fun apẹẹrẹ, ninu ọran ti imularada lẹhin ikuna, gbe ẹda yii si apẹẹrẹ miiran. Fun ile-itaja ipinlẹ kọọkan ni Awọn ṣiṣan Kafka, koko-ọrọ ti o tun ṣe ni a ṣẹda pẹlu iwe iyipada kan (eyiti o tọpa awọn imudojuiwọn agbegbe). Nitorinaa, Kafka nigbagbogbo ṣe atilẹyin ile itaja ipinlẹ naa. Nitorina, ninu iṣẹlẹ ti ikuna ti ọkan tabi miiran Kafka Streams apeere, ile itaja ipinle le ṣe atunṣe ni kiakia lori apẹẹrẹ miiran, nibiti awọn ipin ti o baamu yoo lọ. Awọn idanwo wa ti fihan pe eyi ni a ṣe ni iṣẹju-aaya, paapaa ti awọn miliọnu awọn igbasilẹ ba wa ninu ile itaja.

Gbigbe lati ile-iṣẹ microservice kan pẹlu ipinlẹ pinpin si iṣupọ ti awọn iṣẹ microservices, o di ohun ti ko ṣe pataki lati ṣe imuse Gba Ipinle API. Ni ipo tuntun, ile-itaja ipinlẹ ti microservice kọọkan ni apakan nikan ti aworan gbogbogbo (awọn nkan ti awọn bọtini wọn ti ya aworan si ipin kan pato). A ni lati pinnu iru apẹẹrẹ wo ni ipo ohun ti a nilo ninu, ati pe a ṣe eyi da lori awọn metadata o tẹle ara, bi a ṣe han ni isalẹ:

Ko nikan processing: Bawo ni a ṣe a pin database lati Kafka ṣiṣan, ati ohun ti wá ti o

Nọmba 7: Lilo awọn metadata ṣiṣan, a pinnu lati iru apẹẹrẹ lati beere ipo ohun ti o fẹ; Iru ọna kanna ni a lo pẹlu GET GBOGBO API

Awọn ipinnu akọkọ

Awọn ile itaja ipinlẹ ni Awọn ṣiṣan Kafka le ṣiṣẹ bi ibi ipamọ data pinpin de facto,

  • nigbagbogbo tun ṣe ni Kafka
  • API CRUD le ni irọrun kọ sori iru eto kan
  • Mimu awọn ipin pupọ jẹ diẹ idiju diẹ sii
  • O tun ṣee ṣe lati ṣafikun ọkan tabi diẹ sii awọn ile itaja ipinlẹ si topology ṣiṣanwọle lati tọju data iranlọwọ. Aṣayan yii le ṣee lo fun:
  • Ibi ipamọ igba pipẹ ti data nilo fun awọn iṣiro lakoko ṣiṣe ṣiṣan
  • Ibi ipamọ igba pipẹ ti data ti o le wulo nigbamii ti apẹẹrẹ ṣiṣanwọle ti pese
  • pelu pelu...

Iwọnyi ati awọn anfani miiran jẹ ki Awọn ṣiṣan Kafka baamu daradara fun mimu ipo agbaye ni eto pinpin bii tiwa. Awọn ṣiṣan Kafka ti fihan lati jẹ igbẹkẹle pupọ ni iṣelọpọ (a ti fẹrẹ ko ni pipadanu ifiranṣẹ lati igba ti o ti gbe lọ), ati pe a ni igboya pe awọn agbara rẹ kii yoo da duro sibẹ!

orisun: www.habr.com

Fi ọrọìwòye kun