Hey Habr!
Mampahatsiahy anao izahay fa manaraka ny boky momba ny
Amin'izao fotoana izao dia mianatra ny fetran'ity fitaovana mahery vaika ity ny fiarahamonina. Noho izany, nisy lahatsoratra nivoaka vao haingana, ny dikanteny izay tiantsika hampahafantatra anao. Avy amin'ny traikefany manokana, ny mpanoratra dia milaza ny fomba hamadihana ny Kafka Streams ho fitahirizana angon-drakitra zaraina. Ankafizo ny mamaky!
Tranomboky Apache
Ato amin'ity lahatsoratra ity dia holazaiko aminao ny fomba nahafahan'ny orinasanay nampiasa io fahafahana io tamin'ny famolavolana vokatra ho an'ny fiarovana fampiharana rahona. Amin'ny fampiasana ny Kafka Streams, namorona serivisy micro-panjakana nozaraina izahay, izay ny tsirairay amin'izy ireo dia loharanon'ny fampahalalam-baovao azo antoka sy azo antoka momba ny toetry ny zavatra ao amin'ny rafitra. Aminay dia dingana mandroso izany na eo amin'ny lafin'ny fahatokisana na ny fanamorana ny fanohanana.
Raha toa ianao ka liana amin'ny fomba hafa izay ahafahanao mampiasa angon-drakitra afovoany tokana hanohanana ny fomba ofisialy ny zavatrao, vakio izany, dia ho mahaliana ...
Nahoana no nihevitra izahay fa tonga ny fotoana hanovana ny fomba fiasa amin'ny fanjakana iombonana
Nila nitazona ny toetry ny zavatra isan-karazany izahay mifototra amin'ny tatitry ny masoivoho (ohatra: voatafika ve ilay tranokala)? Talohan'ny nifindrany tany amin'ny Kafka Streams, matetika izahay no niantehitra tamin'ny angon-drakitra foibe iray (+ serivisy API) ho an'ny fitantanana fanjakana. Ity fomba ity dia manana ny tsy fahampiana:
Sary 1: Trangam-pizarazarana mahazatra hita talohan'ny tetezamita mankany
Kafka sy Kafka Streams: mampita ny heviny amin'ny alàlan'ny API ny mpiasa, kajy amin'ny alàlan'ny angon-drakitra afovoany ny fanjakana vaovao
Hihaona amin'ny Kafka Streams, manamora ny famoronana microservices ifampizarana
Herintaona teo ho eo izay, nanapa-kevitra izahay fa hijery akaiky ny toe-draharaham-panjakana nizaranay mba hamahana ireo olana ireo. Nanapa-kevitra avy hatrany izahay fa hanandrana ny Kafka Streams - fantatray ny maha-scalable, azo alaina ary mahazaka lesoka, ny fampandehanana streaming manankarena ananany (fanovàna, anisan'izany ny fanjakana). Izay nilainay ihany, tsy lazaina intsony hoe matotra sy azo ianteherana ny rafitra fandefasana hafatra ao Kafka.
Ny tsirairay amin'ireo microservices manan-kery noforoninay dia natsangana teo an-tampon'ny ohatra Kafka Streams miaraka amin'ny topologie tsotra. Izy io dia ahitana 1) loharano 2) processeur miaraka amin'ny toeram-pivarotana manan-danja maharitra 3) sodina:
Figure 2: Ny topologie default amin'ny fotoana fandefasana anay ho an'ny microservices. Mariho fa misy ihany koa ny tahiry eto izay misy metadata momba ny drafitra.
Amin'ity fomba fiasa vaovao ity, ny mpiasa dia mamorona hafatra izay ampidirina amin'ny lohahevitra loharano, ary ny mpanjifa-milaza, serivisy fampandrenesana mailaka-dia mahazo ny fanjakana ifampizarana kajikajy amin'ny alàlan'ny fantsona (loham-pamokarana).
Sary 3: Ohatra vaovao ny fizotran'ny asa ho an'ny scenario miaraka amin'ny microservices zaraina: 1) ny mpandraharaha dia mamoaka hafatra tonga amin'ny lohahevitra loharano Kafka; 2) ny microservice miaraka amin'ny fanjakana ifampizarana (mampiasa ny Kafka Streams) no manodina azy ary manoratra ny fanjakana kajy amin'ny lohahevitra Kafka farany; aorian'izay 3) manaiky ny fanjakana vaovao ny mpanjifa
Hey, tena ilaina tokoa ity trano fivarotana manan-danja ity!
Araka ny voalaza etsy ambony, ny topologie fanjakana ifampizarantsika dia misy fivarotana manan-danja. Nahita safidy maromaro hampiasaina izahay, ary ny roa amin'izy ireo dia voalaza etsy ambany.
Safidy #1: Mampiasà fivarotana sanda manan-danja ho an'ny kajy
Ny tranombarotra manan-danja voalohany dia nahitana ny angona fanampiny ilainay amin'ny kajy. Ohatra, amin'ny toe-javatra sasany, ny fanjakana iraisana dia nofaritana tamin'ny foto-kevitry ny "vato maro an'isa". Ny tahiry dia afaka mitazona ny tatitra farany farany momba ny satan'ny zavatra sasany. Avy eo, rehefa nahazo tatitra vaovao avy amin'ny mpiasa iray na iray hafa izahay, dia afaka mitahiry izany, maka tatitra avy amin'ny mpiasa hafa rehetra momba ny toetry ny zavatra iray avy amin'ny fitahirizana, ary mamerina ny kajy.
Ny sary 4 etsy ambany dia mampiseho ny fomba nampisehoanay ny fitehirizam-boky / sanda amin'ny fomba fanodinana ny processeur mba ahafahana manodina ny hafatra vaovao.
Sary 4: Manokatra ny fidirana amin'ny fivarotana sanda manan-danja izahay ho an'ny fomba fanodinana ny processeur (aorian'izany, ny script rehetra izay miasa amin'ny fanjakana iombonana dia tsy maintsy mampihatra ny fomba doProcess
)
Safidy #2: Mamorona API CRUD eo an-tampon'ny Kafka Streams
Rehefa avy nametraka ny fizotry ny asa fototra izahay, dia nanomboka nanandrana nanoratra RESTful CRUD API ho an'ny microservices ifampizaranay izahay. Tianay ny ho afaka maka ny toetry ny zavatra sasany na ny zavatra rehetra, ary koa ny mametraka na manala ny toetry ny zavatra iray (ilaina amin'ny fanohanana backend).
Mba hanohanana ny Get State APIs rehetra, isaky ny mila manao kajy ny fanjakana izahay mandritra ny fanodinana, dia notehirizinay tao amin'ny magazay manan-danja naorina nandritra ny fotoana ela. Amin'ity tranga ity dia lasa tsotra ny fampiharana API toy izany amin'ny alàlan'ny Kafka Streams tokana, araka ny aseho amin'ny lisitra etsy ambany:
Sary 5: Fampiasana ny fivarotana sanda manan-danja naorina mba hahazoana ny toetry ny zavatra iray
Mora ampiharina ihany koa ny fanavaozana ny toetry ny zavatra iray amin'ny alàlan'ny API. Amin'ny ankapobeny, ny hany ilainao atao dia ny mamorona mpamokatra Kafka ary ampiasao izany mba hanaovana rakitsoratra misy ny fanjakana vaovao. Izany dia miantoka fa ny hafatra rehetra avoaka amin'ny alàlan'ny API dia hokarakaraina amin'ny fomba mitovy amin'ny voaray avy amin'ny mpamokatra hafa (ohatra ny mpiasa).
Sary 6: Azonao atao ny mametraka ny toetry ny zavatra iray amin'ny alàlan'ny mpamokatra Kafka
Fisavoritaka kely: Manana fizarazarana maro ny Kafka
Manaraka izany, te-hizara ny enta-mavesatry ny fanodinana izahay ary hanatsara ny fahafaha-manao amin'ny alàlan'ny fanomezana vondron'ny microservices zaraina isaky ny toe-javatra. Ny fametrahana dia tsio-drivotra: raha vantany vao namboarinay ny tranga rehetra mba hihazakazaka eo ambanin'ny ID fampiharana mitovy (sy ireo mpizara bootstrap mitovy), dia saika vita ho azy ny zavatra hafa rehetra. Nofaritanay ihany koa fa ny lohahevitry ny loharano tsirairay dia ahitana fizarazarana maromaro, mba hahafahan'ny tranga tsirairay omena ampahany amin'ny fizarazarana toy izany.
Holazaiko ihany koa fa fanao mahazatra ny manao kopia backup amin'ny tranom-panjakana, ka, ohatra, raha sitrana aorian'ny tsy fahombiazana, dia mamindra ity kopia ity amin'ny ohatra hafa. Ho an'ny tranom-panjakana tsirairay ao amin'ny Kafka Streams, misy lohahevitra averina noforonina miaraka amin'ny diarin'ny fanovana (izay manara-maso ny fanavaozana eo an-toerana). Noho izany, manohana hatrany ny fivarotanam-panjakana i Kafka. Noho izany, raha sendra ny tsy fahombiazan'ny iray na iray hafa Kafka Streams, ny tranom-panjakana dia azo averina haingana amin'ny toe-javatra hafa, izay handehanan'ny fisarahana mifanaraka aminy. Ny fitsapana nataonay dia naneho fa vita ao anatin'ny segondra vitsy izany, na dia misy rakitra an-tapitrisany aza ao amin'ny fivarotana.
Mifindra avy amin'ny microservice tokana miaraka amin'ny fanjakana zaraina mankany amin'ny vondron'ny microservices, dia lasa tsy dia misy dikany loatra ny fampiharana ny Get State API. Ao amin'ny toe-javatra vaovao, ny tranom-panjakana ny microservice tsirairay dia tsy ahitana afa-tsy ampahany amin'ny sary ankapobeny (ireo zavatra izay ny lakilen'ny sarintany amin'ny fisarahana manokana). Tsy maintsy nofaritana hoe iza amin'ireo ohatra no misy ny toetry ny zavatra ilainay, ary nanao izany izahay mifototra amin'ny metadata kofehy, araka ny aseho eto ambany:
Sary 7: Amin'ny fampiasana metadata amin'ny stream, dia mamaritra hoe avy amin'ny ohatra inona no hanontaniana ny toetry ny zavatra tadiavina; fomba mitovy amin'izany no nampiasaina tamin'ny GET ALL API
Fehiny lehibe
Ny tranombarotram-panjakana ao amin'ny Kafka Streams dia afaka miasa ho toy ny angon-drakitra zaraina amin'ny ankapobeny,
- averina foana ao Kafka
- Ny API CRUD dia azo amboarina mora foana eo ambonin'ny rafitra toy izany
- Sarotra kokoa ny mitantana partitions maro
- Azo atao ihany koa ny manampy tranom-panjakana iray na maromaro amin'ny topologie streaming mba hitahiry angona fanampiny. Ity safidy ity dia azo ampiasaina amin'ny:
- Fitehirizana angon-drakitra maharitra ilaina amin'ny kajikajy mandritra ny fanodinana stream
- Fitehirizana angon-drakitra maharitra izay mety ilaina amin'ny fotoana manaraka omena ny ohatra mivantana
- betsaka kokoa...
Ireo sy ny tombontsoa hafa dia mahatonga ny Kafka Streams mety tsara amin'ny fitazonana ny fanjakana maneran-tany amin'ny rafitra mizara toa antsika. Ny Kafka Streams dia voaporofo fa tena azo ianteherana amin'ny famokarana (saika tsy nisy very hafatra izahay hatramin'ny nandefasana azy), ary matoky izahay fa tsy hijanona eo ny fahaizany!
Source: www.habr.com