In ensimmäinen viesti Sarjan osassa kuvailimme joitain Apache Kafka -klusterin koon peruskäsitteitä, parhaita käytäntöjä suorituskyvyn optimointiin ja Kafka-työkuormasi kustannuksia.
Tämä viesti selittää, kuinka taustalla oleva infrastruktuuri vaikuttaa Kafkan suorituskykyyn, kun käytät sitä Amazon hallinnoi suoratoistoa Apache Kafkalle (Amazon MSK) porrastettu tallennustila. Perehdymme Amazon MSK:n porrastetun tallennustilan ydinkomponentteihin ja käsittelemme esimerkiksi seuraavia kysymyksiä: Miten lukeminen ja kirjoittaminen toimivat porrastetussa tallennustilassa?
Seuraavassa postauksessa keskustelemme viivevaikutuksesta, suositelluista seurantamittareista ja lopuksi ohjeistamme tärkeimmistä näkökohdista tuotantoporrastetussa tallennustilaklusterissa.
Kuinka Amazon MSK:n porrastettu tallennus toimii
Ymmärtääksemme Amazon MSK:n porrastetun tallennustilan sisäisen arkkitehtuurin, keskustelemme ensin joistakin Kafka-aiheista, osioista ja siitä, miten lukeminen ja kirjoittaminen toimii.
Kafkan loogista tietovirtaa kutsutaan a aihe. Aihe on jaettu tulokset, jotka ovat fyysisiä kokonaisuuksia, joita käytetään jakamaan kuormitusta useille palvelinesiintymille (välittäjille), jotka palvelevat lukua ja kirjoitusta.
Osio – jota kutsutaan myös aihe-osioiksi, koska se liittyy tiettyyn aiheeseen – voidaan replikoida, mikä tarkoittaa, että klusterin muodostavassa välittäjäryhmässä on useita kopioita tiedoista. Jokainen kopio on nimeltään a vastaus tai log. Yksi näistä kopioista, nimeltään johtaja, toimii viitteenä. Siellä hyväksytään aihe-osion sisääntuloliikenne.
Loki on vain liitettävä lokisegmenttien sarja. Lokisegmentit sisältävät Kafka-tietotietueita, jotka lisätään lokin tai aktiivisen segmentin loppuun.
Lokisegmentit tallennetaan tavallisina tiedostoina. Tiedostojärjestelmässä Kafka tunnistaa lokisegmentin tiedoston lisäämällä tiedostonimeensä sen sisältämän ensimmäisen tietueen offsetin. Tietueen siirtymä on yksinkertaisesti monotoninen indeksi, jonka Kafka on määrittänyt tietueelle, kun se on liitetty lokiin. Lokin segmenttitiedostot tallennetaan hakemistoon, joka on omistettu liittyvälle aihe-osiolle.
Kun Kafka lukee tietoja mielivaltaisesta siirtymästä, se etsii ensin segmentin, joka sisältää kyseisen siirtymän segmenttitiedoston nimestä, ja sitten tietyn tietueen sijainnin kyseisessä tiedostossa käyttämällä offset-indeksiä. Offset-indeksit materialisoidaan erityiseen tiedostoon, joka on tallennettu segmenttitiedostojen kanssa aihe-osion hakemistoon. On myös timeindex
etsiä aikaleimalla.
Jokaiselle osiolle Kafka tallentaa myös johtajuuden muutospäiväkirjan tiedostoon nimeltä leader-epoch-checkpoint
. Tämä tiedosto sisältää johtajan aikakauden kartoituksen startOffset
aikakaudelta. Aina kun Kafkan valvoja valitsee osiolle uuden johtajan, nämä tiedot päivitetään ja välitetään kaikille välittäjille. Leader-epookki on 32-bittinen, monotonisesti kasvava luku, joka edustaa yhden osion jatkuvaa johtamisjaksoa. Se on merkitty kaikkiin Kafka-levyihin. Seuraava koodi on aiheautojen ja osion 0 paikallinen tallennusasettelu, joka sisältää kaksi segmenttiä (0, 35):
Kafka hallinnoi näiden segmenttitiedostojen elinkaarta. Se luo uuden, kun uusi segmentti on luotava, esimerkiksi jos nykyinen segmentti saavuttaa määritetyn enimmäiskoon. Se poistaa yhden, kun sen sisältämien tietojen tavoitesäilytysaika saavutetaan tai lokin enimmäiskoko saavutetaan. Tiedot poistetaan lokien pyrstöstä ja vastaavat aihe-osion vain lisättävän lokin vanhimpia tietoja.
KIP-405 tai porrastettu tallennustila Apache Kafkassa
Mahdollisuus tasoittaa dataa, toisin sanoen siirtää dataa (log, index, timeindex
ja leader-epoch-checkpoint
) paikallisesta tiedostojärjestelmästä toiseen tallennusjärjestelmään, joka perustuu aika- ja kokoperusteisiin säilytyskäytäntöihin, on ominaisuus, joka on rakennettu Apache Kafkaan osana KIP-405.
KIP-405 ei ole vielä virallisessa Kafka-versiossa. Amazon MSK toteutti sisäisesti porrastetun tallennustoiminnon virallisen Kafka-version 2.8.2 päälle. Amazon MSK paljastaa tämän toiminnon AWS-kohtaisesti 2.8.2.porrastettu Kafka versio. Tämän ominaisuuden avulla voit erottaa paikallisen ja etäsäilytyksen säilytysasetukset. Paikallisen tason tiedot säilytetään, kunnes tiedot kopioidaan etätasolle, vaikka paikallinen säilytysaika päättyy. Etätason tiedot säilytetään, kunnes etäsäilytysaika päättyy. KIP-405 ehdottaa liitettävissä olevaa arkkitehtuuria, jonka avulla voit liittää mukautetun etätallennustilan ja metatietojen tallennuksen taustaohjelmat. Seuraava kaavio havainnollistaa välittäjän kolmea avainkomponenttia.
Komponentit ovat seuraavat:
- RemoteLogManager (RLM) – Uusi komponentti, joka vastaa LogManageria paikalliselle tasolle. Se delegoi valmiiden ja ei-aktiivisten osion segmenttien kopioinnin, noudon ja poistamisen kytkettävälle RemoteStorageManager-toteutukselle ja ylläpitää vastaavia etälokin segmenttien metatietoja kytkettävän RemoteLogMetadataManager-toteutuksen avulla.
- RemoteStorageManager (RSM) – Kytkettävä liitäntä, joka tarjoaa etälokisegmenttien elinkaaren.
- RemoteLogMetadataManager (RLMM) – Kytkettävä liitäntä, joka tarjoaa etälokin segmenttien metatietojen elinkaaren.
Kuinka tiedot siirretään etätasolle porrastetun tallennustilan avulla
Porrastetussa tallennustilaa tukevassa aiheessa jokainen aihe-osion valmis segmentti käynnistää osion johtajan kopioimaan tiedot etätallennustasolle. Valmis lokisegmentti poistetaan paikallisilta levyiltä, kun Amazon MSK on siirtänyt kyseisen lokisegmentin etätasolle ja kun se täyttää paikallisen säilytyskäytännön. Tämä vapauttaa paikallista tallennustilaa.
Tarkastellaan hypoteettista skenaariota: sinulla on aihe, jossa on yksi osio. Ennen kuin otat porrastetun tallennustilan käyttöön tälle aiheelle, lokissa on kolme segmenttiä. Yksi segmenteistä on aktiivinen ja vastaanottaa tietoja, ja kaksi muuta segmenttiä ovat valmiita.
Kun otat käyttöön tälle aiheelle porrastetun tallennusajan, jossa on kaksi päivää paikallista säilytystä ja viisi päivää yleistä säilytystä, Amazon MSK kopioi lokisegmentit 1 ja 2 porrastettuun tallennustilaan. Amazon MSK säilyttää myös segmenttien 1 ja 2 ensisijaisen tallennuskopion. Aktiivista segmenttiä 3 ei voi vielä kopioida porrastettuun tallennustilaan. Tällä aikajanalla mitään säilytysasetuksista ei vielä käytetä millekään segmentin 1 ja segmentin 2 viesteille.
Kahden päivän kuluttua ensisijaiset säilytysasetukset tulevat voimaan segmentille 2 ja segmentille 1, jotka Amazon MSK on kopioinut porrastettuun tallennustilaan. Segmentit 2 ja 1 vanhenevat nyt paikallisesta tallennustilasta. Aktiivinen segmentti 2 ei ole vielä kelvollinen vanhentumaan eikä kopioitavaksi porrastettuun tallennustilaan vielä, koska se on aktiivinen segmentti.
Viiden päivän kuluttua yleiset säilytysasetukset tulevat voimaan, ja Amazon MSK tyhjentää lokisegmentit 5 ja 1 porrastetusta tallennustilasta. Segmentti 2 ei ole vielä kelvollinen vanhentumaan tai kopioitavaksi porrastettuun tallennustilaan, koska se on aktiivinen.
Näin tietojen elinkaari toimii porrastetussa tallennustilaklusterissa.
Amazon MSK alkaa välittömästi siirtää tietoja porrastettuun tallennustilaan heti, kun segmentti suljetaan. Paikalliset levyt vapautuvat, kun Amazon MSK siirtää kyseisen lokisegmentin etätasolle ja kun se täyttää paikallisen säilytyskäytännön.
Kuinka luku toimii porrastettua tallennustilaa tukevassa aiheessa
Jokaisen lukupyynnön kohdalla ReplicaManager yrittää käsitellä pyynnön lähettämällä sen ReadFromLocalLogille. Ja jos prosessi palauttaa offset out of range -poikkeuksen, se delegoi lukukutsun RemoteLogManagerille lukemaan tasoituksesta. Lukupolulla RemoteStorageManager alkaa hakea tietoja paloina etätallennustilasta, mikä tarkoittaa, että muutaman ensimmäisen tavun aikana kuluttajasi kokee korkeamman viiveen, mutta kun järjestelmä alkaa puskuroida segmenttiä paikallisesti, kuluttajasi kokee viiveen, joka on samanlainen kuin lukeminen paikallinen varasto. Yksi tämän lähestymistavan eduista on, että tiedot toimitetaan välittömästi paikallisesta puskurista, jos useita kuluttajia lukee samasta segmentistä.
Jos kuluttajasi on määritetty lukemaan lähimmästä kopiosta, saattaa olla mahdollista, että eri kuluttajaryhmän kuluttaja lukee samaa etäsegmenttiä eri välittäjällä. Siinä tapauksessa he kokevat saman latenssikäyttäytymisen, jota kuvailimme aiemmin.
Yhteenveto
Tässä viestissä keskustelimme Amazon MSK:n porrastetun tallennusominaisuuden ydinkomponenteista ja selitimme kuinka tietojen elinkaari toimii klusterissa, jossa on käytössä porrastettu tallennus. Pysy kuulolla tulevassa postauksessamme, jossa perehdymme parhaisiin käytäntöihin porrastetun tallennustilan klusterin mitoittamiseksi ja käyttämiseksi tuotannossa.
Haluaisimme kuulla, kuinka rakennat reaaliaikaisia datan suoratoistosovelluksiasi tänään. Jos olet vasta aloittamassa Amazon MSK:n porrastetun tallennustilan käyttöä, suosittelemme tutustumaan ohjeisiin, jotka ovat saatavilla osoitteessa porrastettu tallennusdokumentaatio.
Jos sinulla on kysyttävää tai palautetta, jätä ne kommenttiosioon.
Tietoja kirjoittajista
Nagarjuna Koduru on AWS:n pääinsinööri ja työskentelee tällä hetkellä AWS Managed Streaming For Kafka (MSK) -palvelussa. Hän johti tiimejä, jotka rakensivat MSK Serverless- ja MSK Tiered -tallennustuotteita. Hän johti aiemmin tiimiä Amazon JustWalkOutissa (JWO), joka on vastuussa ostajien sijainnin reaaliaikaisesta seurannasta myymälässä. Hänellä oli keskeinen rooli tilallisen streaminkäsittelyinfrastruktuurin skaalauksessa tukemaan suurempia myymälämuotoja ja alentamaan järjestelmän kokonaiskustannuksia. Hän on kiinnostunut suoratoisto-, viestintä- ja hajautetusta tallennusinfrastruktuurista.
Masudur Rahaman Sayem on AWS:n suoratoistodatan arkkitehti. Hän työskentelee AWS-asiakkaiden kanssa maailmanlaajuisesti suunnitellakseen ja rakentaakseen datan suoratoistoarkkitehtuureja ratkaistakseen todellisia liiketoimintaongelmia. Hän on erikoistunut optimoimaan ratkaisuja, jotka käyttävät suoratoistodatapalveluita ja NoSQL:ää. Sayem on erittäin intohimoinen hajautettuun tietojenkäsittelyyn.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- EVM Finance. Hajautetun rahoituksen yhtenäinen käyttöliittymä. Pääsy tästä.
- Quantum Media Group. IR/PR vahvistettu. Pääsy tästä.
- PlatoAiStream. Web3 Data Intelligence. Tietoa laajennettu. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/big-data/deep-dive-on-amazon-msk-tiered-storage/
- :on
- :On
- :missä
- $ YLÖS
- 1
- 100
- 8
- 9
- a
- kyky
- Meistä
- hyväksytty
- poikki
- aktiivinen
- lisä-
- osoite
- etuja
- Jälkeen
- Kaikki
- Salliminen
- Myös
- Amazon
- Amazon Web Services
- an
- ja
- Toinen
- Kaikki
- Apache
- Apache Kafka
- sovellukset
- sovellettu
- lähestymistapa
- arkkitehtuuri
- OVAT
- AS
- osoitettu
- liittyvä
- At
- saatavissa
- AWS
- perustua
- BE
- koska
- PARAS
- parhaat käytännöt
- Rikki
- välittäjä
- välittäjät
- puskuri
- rakentaa
- Rakentaminen
- rakennettu
- liiketoiminta
- mutta
- by
- soittaa
- nimeltään
- CAN
- autot
- tapaus
- Muutokset
- suljettu
- Cluster
- koodi
- kommentit
- täydellinen
- Valmistunut
- komponentti
- osat
- tietojenkäsittely
- käsitteet
- päättelee
- määritetty
- Harkita
- näkökohdat
- kuluttaja
- Kuluttajat
- sisältää
- jatkuva
- ohjain
- Ydin
- vastaava
- vastaa
- Hinta
- luotu
- luo
- Nykyinen
- Tällä hetkellä
- asiakassuhde
- Asiakkaat
- tiedot
- päivää
- omistautunut
- syvä
- syväsukellus
- osanottajaa
- on kuvattu
- Malli
- nimetty
- eri
- pohtia
- keskusteltiin
- jakaa
- jaettu
- hajautettu laskenta
- ei
- alas
- kukin
- vaikutus
- valittiin
- oikeutettu
- mahdollistaa
- käytössä
- mahdollistaa
- loppu
- insinööri
- yksiköt
- aikakausi
- Eetteri (ETH)
- Jopa
- Joka
- poikkeus
- experience
- Elämykset
- päättyminen
- selitti
- selittää
- Ominaisuus
- palaute
- harvat
- filee
- Asiakirjat
- Etunimi
- viisi
- jälkeen
- seuraa
- varten
- alkaen
- toiminnallisuus
- Perusteet
- saada
- tietty
- Maailmanlaajuisesti
- Ryhmä
- ohjaus
- suuntaviivat
- käytännön
- Olla
- he
- kuulla
- korkeampi
- Miten
- HTML
- HTTPS
- tunnistaa
- if
- havainnollistaa
- heti
- Vaikutus
- täytäntöönpano
- täytäntöön
- in
- Muilla
- lisää
- indeksi
- indeksit
- Infrastruktuuri
- esimerkki
- heti
- korko
- liitäntä
- sisäinen
- sisäisesti
- tulee
- IT
- SEN
- päiväkirja
- jpg
- vain
- Kafka
- Innokas
- avain
- suurempi
- Viive
- Layout
- johtaja
- Johto
- jättää
- Led
- elinkaari
- kuormitus
- paikallinen
- paikallisesti
- sijainti
- sijainnit
- log
- looginen
- ulkonäkö
- rakkaus
- ylläpitää
- onnistui
- hallinnoi
- kartoitus
- merkitty
- max
- välineet
- Meets
- viestien
- Viestit
- Metadata
- Metrics
- ehkä
- monitori
- siirretty
- liikkuvat
- moninkertainen
- nimi
- tarpeet
- Eikä
- Uusi
- ei myöskään
- nyt
- numero
- of
- virallinen
- offset
- vanhin
- on
- ONE
- optimoimalla
- or
- Muut
- meidän
- ulos
- yli
- yleinen
- osa
- intohimoinen
- polku
- suorituskyky
- aika
- fyysinen
- keskeinen
- Platon
- Platonin tietotieto
- PlatonData
- pelataan
- Ole hyvä
- kytkeä
- politiikkaa
- politiikka
- mahdollisuus
- Kirje
- käytännöt
- aiemmin
- ensisijainen
- Pääasiallinen
- Aikaisempi
- ongelmia
- prosessi
- käsittely
- tuotanto
- Tuotteemme
- ehdottaa
- tarjoaa
- Putting
- kysymykset
- alue
- saavutettu
- saavuttaa
- Lue
- Lukeminen
- todellinen maailma
- reaaliaikainen
- reaaliaikainen data
- reaaliaika
- vastaanottava
- suositella
- suositeltu
- ennätys
- asiakirjat
- vähentämällä
- tarkoitettuja
- säännöllinen
- suhteellinen
- kaukosäädin
- poistettu
- vastaus
- monistaa
- edustavat
- pyyntö
- ne
- vastuullinen
- säilyttäminen
- Tuotto
- Rooli
- juoksu
- sama
- skaalaus
- skenaario
- Osa
- etsiä
- segmentti
- segmentit
- lähettäminen
- erillinen
- Järjestys
- Sarjat
- palvella
- serverless
- palvelee
- Palvelut
- settings
- useat
- samankaltainen
- yksinkertaisesti
- single
- Koko
- Ratkaisumme
- SOLVE
- jonkin verran
- Pian
- Tila
- erikoistunut
- erityinen
- alkoi
- alkaa
- pysyä
- Levytila
- verkkokaupasta
- tallennettu
- varastot
- virta
- streaming
- myöhempi
- niin
- tuki
- järjestelmä
- ottaa
- Kohde
- joukkue-
- tiimit
- että
- -
- Niitä
- sitten
- Siellä.
- Nämä
- ne
- tätä
- kolmella
- Kautta
- porras
- aika
- aikajana
- aikaleima
- että
- tänään
- ylin
- aihe
- Aiheet
- Yhteensä
- Seuranta
- liikenne
- siirtää
- kaksi
- taustalla oleva
- ymmärtää
- asti
- tuleva
- päivitetty
- käyttää
- käytetty
- käyttämällä
- versio
- hyvin
- we
- verkko
- verkkopalvelut
- kun
- aina kun
- joka
- with
- sanoja
- Referenssit
- työskentely
- toimii
- olisi
- kirjoittaa
- vielä
- te
- Sinun
- zephyrnet