Junior
Ինչ է Kafka-ն?
sobes.tech AI
Պատասխան AI-ից
Բաշխված, սխալների հանդուրժող publish-subscribe հաղորդագրությունների փոխանակման համակարգ, որը մշակվել է LinkedIn-ի կողմից և դարձել է Apache նախագծի մաս: Օգտագործվում է իրական ժամանակի տվյալների գծանցներ և հոսքային հավելվածներ կառուցելու համար:
Հիմնական բաղադրիչներ և հասկացություններ:
- Broker: Kafka սերվեր: Kafka ակումբը բաղկացած է մեկ կամ մի քանի բրոքերներից:
- Topic: Կատեգորիա, որտեղ հրապարակվում են հաղորդագրությունները: Լոգիկորեն բաժանում է տվյալների հոսքերը:
- Partition: Թեման բաժանվում է բաժինների: Յուրաքանչյուր բաժին՝ կարգավորված, անփոփոխ հաղորդագրությունների հաջորդականություն: Բաժնի մեջ հաղորդագրությունները ունեն եզակի տեղաշարժ (offset):
- Producer: Ծրագիր, որը հրապարակում է հաղորդագրություններ թեմայում:
- Consumer: Ծրագիր, որը բաժանորդագրվում է թեմային և սպառում հաղորդագրությունները:
- Consumer Group: Խումբ սպառողների, որոնք համատեղ սպառում են հաղորդագրությունները մեկ կամ մի քանի թեմաներից: Բաժնի հաղորդագրությունները միայն մեկ սպառողի է տրամադրվում խմբում:
- Zookeeper: Օգտագործվում է Kafka ակումբի համակարգման համար (բրոքերների, թեմաների, բաժինների, սպառողների խմբերի տեղաշարժերի կառավարում): Նոր տարբերակներում Zookeeper-ի դերակատարությունը մասամբ փոխանցվում է KRaft ինտեգրված կոնսենսուսային ծառայությանը:
Kafka-ն ապահովում է բարձր հոսք, ընդլայնելիություն և սխալների հանդուրժողականություն՝ բաժինների կրկնօրինակումով բրոքերների միջև: Հաղորդագրությունները պահվում են disque և հասանելի են սպառողներին սահմանված ժամանակահատվածում:
Օգտագործման օրինակներ:
- Լոգների հավաքում և մշակում իրական ժամանակում:
- Տվյալների հոսքային մշակում (Kafka Streams, KSQL) միջոցով:
- Ծառայությունների բաժանում (միկրոսերվիսային ճարտարապետություն):
- Տվյալների սինխրոնիզացիա համակարգերի միջև: