Junior
Kas ir Kafka?
sobes.tech AI
Atbilde no AI
Izplatīta, kļūmes izturīga paziņojumu publicēšanas un abonēšanas sistēma, ko izstrādājis LinkedIN un kas ir kļuvusi par Apache projektu. To izmanto reāllaika datu plūsmu un straumēšanas lietojumu būvēšanai.
Galvenās sastāvdaļas un koncepcijas:
- Brokeris: Kafka serveris. Kafka klasteris sastāv no viena vai vairākiem brokeriem.
- Tēma: Kategorija, kurā tiek publicēti ziņojumi. Loģiski sadala datu plūsmas.
- Partīcija: Tēma ir sadalīta partīcijās. Katra partīcija ir sakārtota, nemainīga ziņojumu secība. Ziņojumiem partīcijā ir piešķirts unikāls nobīdes skaitlis (offset).
- Ražotājs: Lietojumprogramma, kas publicē ziņojumus tēmai.
- Patērētājs: Lietojumprogramma, kas abonē tēmu un patērē ziņojumus.
- Patērētāju grupa: Patērētāju grupa, kas kopīgi patērē ziņojumus no viena vai vairākiem tēmu. Ziņojumi no partīcijas tiek piegādāti tikai vienam patērētājam grupā.
- Zookeeper: Izmanto Kafka klastera koordinēšanai (brokeru, tēmu, partīciju, patērētāju grupu nobīžu pārvaldībai). Jaunākās Kafka versijās Zookeeper loma daļēji tiek pārņemta ar iebūvētu konsensa pakalpojumu KRaft.
Kafka nodrošina augstu caurlaidspēju, mērogojamību un kļūmes izturību, izmantojot partīciju replikāciju starp brokeriem. Ziņojumi tiek saglabāti uz diska un ir pieejami patērētājiem noteiktā laika periodā.
Piemēri lietošanai:
- Reāllaika žurnālu vākšana un apstrāde.
- Datu straumju apstrāde (caur Kafka Streams, KSQL).
- Pakalpojumu atvienošana (mikropakalpojumu arhitektūra).
- Datu sinhronizācija starp sistēmām.