total descendants::8 total children::3 5 ❤️
|
Vdaka, ved som za ten cas stihol aj 2x vyhoriet(riesil som este dalsie 2 subprojekty subezne a este robil Linux admina). Kafka je na messaging. Taka vodárenská sieť na JSON/textove spravy. Konkretny usecase su bankomatove karty a operacie pocas a po platbe kartou. U nas sa to pouziva minimalne na "bodiky zbierate" zakaznicke konta. Zakaznik prilozi kartu na terminal -> prebehne proces platby -> autorizacie od VISA/MC -> prachy sa zablokuju na karte -> obchodnik dostane prachy. Kafkove moduly si potom nezavysle na tomto procese vytiahnu z DB konkretne info a nechavaju ich dostupne v Kafkovi pre ine aplikacie "na potom" bez narusenia platobneho procesu. Tato filozofia sa vola decoupling - rozviazanie uzkeho spojenia dvojic(DB -> Kafka a Kafka -> client) na to, aby sa vyhlo strate dat pri timoutoch, sietovych problemoch a setrili sa spojenia, kedze "bodiky zbierate" nieje az take dolezite mat hotove v realnom case na rozdiel od samotnej platby. Dalsi klienti, napr. banka, si moze v uzkej dvojici Moja Kafka -> Ich Kafka vytiahnut rovnake data a robit si programy na spracovanie, napr. webgui, kde si moze zakaznik sledovat historiu platieb. Tym, ze je Kafka extremne rychla(kvoli priamemu pouziti volani kernelu pre sietovku a diskove operacie - sietovka priamo zapisuje na disk), tak si moze tie iste data vycitavat backend pre webgui obsluhujuci 10tis uzivatelov naraz. Konkretnejsie: Mas napr. Oracle DB a aplikaciu, ktora potrebuje data z DB. Kafka Connect ma modul OJDBC. Zapnes kafka connector, ktory si otvori trvale spojenie do DB a kazdych 5s posle dotaz. Ak su nove zaznamy, conector tie zaznamy nacita z DB a produkuje do Kafku. Ked uz to v Kafkovi je, tak hocjaky pocet konzumerov moze tieto spravy odobrat. Napr. Cckova kniznica Librdkafka je pouzita v C++ programe pre klientov banky, aby skonzumoval nove spravy z Kafku a klientovi vypisal ich obsah, alebo poslal SMSku. Kafka sa pritom stara o to, aby konzumujuci client dostal vzdy vsetky spravy a len raz(idempotencia), teda odlahcuje samotnu aplikaciu o kontroly celistvosti a kontrolnu logiku a tiez odlahci DB. Kafka pri spravnom nastaveni garantuje, ze cokolvek tam pride, tak bude citatelne, ze rovnaky vstup da vzdy rovnaky vystup(idempotencia), ze poradie prichodzich a odchodzich sprav je nemenne, ze pri vypadku 1 z 3 datacentier budu vzdy data dostupne zo zvysnych 2(clustrove quorum, leaders atd), horizontalna skalovatelnost(mozes pocas behu pridavat n dalsich nod), rolling update. Navrhnute tak, ze ked sa to raz dobre nakonfiguruje a zapne, tak to ma bezat 10 rokov dokial sa to nevypne. Filozofia je tu: https://uloz.to/file/g8NpMRZa5DV8/designing-event-driven-systems-for-streaming-services-with-apache-kafka-ben-stopford-2018-o-reilly-20220311-eb-pdf#!ZGpjZmR2Zwt5BQZmL2MzBQHmLJL3ZwuJEQIDFKcKBUbhHGMyAD== Konkretna realizacia je tu(treba sa zaregistrovat na stiahnutie): https://www.confluent.io/resources/kafka-the-definitive-guide-v2/?utm_medium=sem&utm_source=google&utm_campaign=ch.sem_br.nonbrand_tp.prs_tgt.content-search_mt.xct_rgn.emea_lng.eng_dv.all_con.ktdg-v2&utm_term=kafka%20the%20definitive%20guide&creative=&device=c&placement=&gclid=EAIaIQobChMIxdzl88ey-wIVsI9oCR1jXQyYEAAYASAAEgIRMPD_BwE |
| |||||||||||||||||||||||||