Sobes.tech
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) միջոցով:
  • Ծառայությունների բաժանում (միկրոսերվիսային ճարտարապետություն):
  • Տվյալների սինխրոնիզացիա համակարգերի միջև: