نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

اې حبره!

موږ تاسو ته یادونه کوو چې د کتاب په اړه تعقیب کړئ کافکا موږ د کتابتون په اړه ورته په زړه پورې کار خپور کړی دی د کافکا سټیمز API.

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

د اوس لپاره، ټولنه یوازې د دې ځواکمن وسیلې حدود زده کوي. نو، په دې وروستیو کې یوه مقاله خپره شوه، چې موږ یې ژباړل غواړو. د خپلې تجربې څخه، لیکوال وايي چې څنګه د کافکا جریانونه د توزیع شوي ډیټا ذخیره کې بدل کړي. له لوستلو خوند واخلئ!

د اپاچی کتابتون د کافکا جریان د اپاچی کافکا په سر کې د توزیع شوي جریان پروسس کولو لپاره په ټوله نړۍ کې کارول کیږي. د دې چوکاټ یو له کم تعریف شوي اړخونو څخه دا دی چې دا تاسو ته اجازه درکوي د تار پروسس کولو پراساس تولید شوي محلي حالت ذخیره کړئ.

پدې مقاله کې ، زه به تاسو ته ووایم چې څنګه زموږ شرکت د بادل غوښتنلیک امنیت لپاره محصول رامینځته کولو په وخت کې د دې فرصت څخه په ګټه اخیستنې سره اداره کړې. د کافکا سټریمونو په کارولو سره، موږ شریک شوي دولتي مایکرو خدمتونه رامینځته کړل، چې هر یو یې په سیسټم کې د شیانو د حالت په اړه د باور وړ معلوماتو د غلطۍ زغمونکي او خورا موجود سرچینې په توګه کار کوي. زموږ لپاره، دا د اعتبار او اسانتیا په برخه کې یو ګام مخکې دی.

که تاسو د یوې بدیل طریقې سره علاقه لرئ چې تاسو ته اجازه درکوي د خپلو شیانو رسمي حالت مالتړ لپاره یو واحد مرکزي ډیټابیس وکاروئ ، نو ولولئ ، دا به په زړه پوري وي ...

ولې موږ فکر کاوه چې دا د ګډ دولت سره د کار کولو لاره بدلولو وخت دی

موږ اړتیا درلوده چې د اجنټ راپورونو پراساس د مختلف شیانو حالت وساتو (د مثال په توګه: ایا سایټ تر برید لاندې دی)؟ د کافکا جریانونو ته د مهاجرت دمخه ، موږ ډیری وختونه د دولت مدیریت لپاره په واحد مرکزي ډیټابیس (+ service API) تکیه کوله. دا طریقه خپل نیمګړتیاوې لري: د نیټې شدید حالتونه د ثبات ساتل او همغږي کول یو ریښتینی ننګونه کیږي. ډیټابیس ممکن خنډ شي یا پای ته ورسیږي د نسل حالت او د نه وړاندوینې څخه رنځ وړي.

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شکل 1: یو عادي ویشل شوي حالت سناریو چې د لیږد دمخه لیدل کیږي
د کافکا او کافکا جریانونه: اجنټان د API له لارې خپل نظرونه شریکوي، تازه حالت د مرکزي ډیټابیس له لارې محاسبه کیږي

د کافکا جریانونو سره لیدنه وکړئ ، د ګډ دولتي مایکرو خدماتو رامینځته کول اسانه کوي

شاوخوا یو کال دمخه، موږ پریکړه وکړه چې د دې مسلو د حل لپاره زموږ د ګډ دولت سناریوګانو ته سخته کتنه وکړو. موږ سمدلاسه پریکړه وکړه چې د کافکا سټریمونو هڅه وکړو - موږ پوهیږو چې دا څومره د توزیع وړ ، خورا شتون لري او د غلطۍ زغمونکی دی ، کوم بډایه سټریمینګ فعالیت لري (بدلونونه ، په شمول د دولت لرونکي). یوازې هغه څه چې موږ ورته اړتیا لرو، دا نه ویل چې په کافکا کې د پیغام رسولو سیسټم څومره بالغ او د باور وړ دی.

هر یو دولتي مایکرو سرویسونه چې موږ رامینځته کړي د کافکا سټریمونو مثال په سر کې د کافي ساده ټوپولوژي سره جوړ شوي. پدې کې 1) سرچینه 2) یو پروسیسر د دوامداره کلیدي ارزښت پلورنځي سره 3) یو سنک:

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شکل 2: د دولتي مایکرو خدماتو لپاره زموږ د سټرینګ مثالونو ډیفالټ ټوپولوژي. په یاد ولرئ چې دلته یو ذخیره هم شتون لري چې د پلان کولو میټاډاټا لري.

په دې نوې طریقه کې، اجنټان هغه پیغامونه جوړوي چې د سرچینې موضوع کې تغذیه شوي، او مصرف کونکي - وايي، د بریښناليک خبرتیا خدمت - د سنک (آؤټ پوټ موضوع) له لارې محاسبه شوي شریک حالت ترلاسه کوي.

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شکل 3: د شریک مایکرو خدماتو سره د یوې سناریو لپاره د کاري جریان نوې بیلګه: 1) اجنټ یو پیغام رامینځته کوي چې د کافکا سرچینې موضوع ته رسیږي؛ 2) د شریک حالت سره یو مایکرو سرویس (د کافکا جریانونو په کارولو سره) دا پروسس کوي او د کافکا وروستۍ موضوع ته محاسبه شوي حالت لیکي؛ له هغې وروسته 3) پیرودونکي نوی حالت مني

سلام ، دا جوړ شوی د کلیدي ارزښت پلورنځی واقعیا خورا ګټور دی!

لکه څنګه چې پورته یادونه وشوه، زموږ شریک شوي دولتي ټوپولوژي د کلیدي ارزښت پلورنځی لري. موږ د دې کارولو لپاره ډیری اختیارونه وموندل، او دوه یې لاندې تشریح شوي.

اختیار #1: د محاسبې لپاره د کلیدي ارزښت پلورنځی وکاروئ

زموږ لومړی کلیدي ارزښت پلورنځی هغه مرستندویه معلومات لري چې موږ یې د محاسبې لپاره ورته اړتیا لرو. د بیلګې په توګه، په ځینو مواردو کې ګډ دولت د "اکثریت رایو" د اصولو له مخې ټاکل شوی. ذخیره کولی شي د یو څه شی حالت په اړه ټول وروستي اجنټ راپورونه وساتي. بیا، کله چې موږ د یو اجنټ یا بل څخه نوی راپور ترلاسه کړو، موږ کولی شو هغه خوندي کړو، د نورو ټولو اجنټانو څخه راپورونه د ذخیره کولو څخه د ورته څیز حالت په اړه بیرته ترلاسه کړو، او محاسبه تکرار کړو.
لاندې 4 شکل ښیې چې موږ څنګه د پروسیسر پروسس کولو میتود ته کلیدي/ ارزښت پلورنځي ښکاره کړل ترڅو نوی پیغام پروسس شي.

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

انځور 4: موږ د پروسیسر پروسس کولو میتود لپاره د کلیدي ارزښت پلورنځي ته لاسرسی خلاصوو (له دې وروسته ، هر سکریپټ چې د شریک حالت سره کار کوي باید میتود پلي کړي. doProcess)

اختیار #2: د کافکا جریانونو په سر کې د CRUD API رامینځته کول

زموږ د لومړني کاري جریان رامینځته کولو سره ، موږ زموږ د ګډ ریاست مایکرو خدماتو لپاره د RESTful CRUD API لیکلو هڅه پیل کړه. موږ غوښتل د دې وړتیا ولرو چې د ځینې یا ټولو شیانو حالت بیرته ترلاسه کړو ، په بیله بیا د یو څیز حالت تنظیم یا لرې کړو (د شاته ملاتړ لپاره ګټور).

د ټولو Get State APIs مالتړ لپاره، هرکله چې موږ د پروسس کولو په جریان کې د دولت بیا محاسبه کولو ته اړتیا درلوده، موږ دا د اوږدې مودې لپاره په جوړ شوي کلیدي ارزښت پلورنځي کې زیرمه کړه. په دې حالت کې، دا خورا ساده کیږي چې د کافکا سټریمونو یو واحد مثال په کارولو سره د داسې API پلي کولو لپاره، لکه څنګه چې په لاندې لیست کې ښودل شوي:

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شکل 5: د جوړ شوي کلیدي ارزښت پلورنځي څخه کار اخیستل ترڅو د یو څیز دمخه حساب شوي حالت ترلاسه کړي

د API له لارې د اعتراض حالت تازه کول هم پلي کول اسانه دي. اساسا ، ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ د کافکا تولید کونکی رامینځته کړئ او د ریکارډ جوړولو لپاره یې وکاروئ چې نوی حالت پکې وي. دا ډاډ ورکوي چې د API له لارې رامینځته شوي ټول پیغامونه به په ورته ډول پروسس شي لکه څنګه چې د نورو تولید کونکو څخه ترلاسه شوي (د بیلګې په توګه اجنټان).

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شپږم شکل: تاسو کولی شئ د کافکا تولید کونکي په کارولو سره د یو څیز حالت تنظیم کړئ

کوچنی پیچلتیا: کافکا ډیری برخې لري

بیا، موږ غوښتل چې د پروسس بار توزیع کړو او په هر سناریو کې د شریک ریاست مایکرو خدماتو کلستر چمتو کولو سره شتون ته وده ورکړو. سیټ اپ یو هوا وه: یوځل چې موږ ټول مثالونه د ورته غوښتنلیک ID (او ورته بوټسټریپ سرورونو) لاندې چلولو لپاره تنظیم کړل ، نږدې هرڅه په اوتومات ډول ترسره شوي. موږ دا هم مشخص کړل چې د هرې سرچینې موضوع به د څو برخو څخه جوړه وي، د دې لپاره چې هر مثال د ورته ویشونو فرعي سیټ وټاکل شي.

زه به دا هم یادونه وکړم چې د دولتي پلورنځي بیک اپ کاپي رامینځته کول عام عمل دی نو د مثال په توګه ، د ناکامۍ وروسته د رغیدو په صورت کې ، دا کاپي بل مثال ته انتقال کړئ. په کافکا سټریمونو کې د هر دولتي پلورنځي لپاره ، یو نقل شوی موضوع د بدلون لاګ سره رامینځته کیږي (کوم چې ځایی تازه معلومات تعقیبوي). په دې توګه، کافکا په دوامداره توګه د دولتي پلورنځي ملاتړ کوي. له همدې امله، د یو یا بل کافکا جریانونو د ناکامۍ په صورت کې، دولتي پلورنځي په بل مثال کې په چټکۍ سره بحال کیدی شي، چیرې چې اړونده برخې به ځي. زموږ ازموینو ښودلې چې دا په څو ثانیو کې ترسره کیږي ، حتی که چیرې په پلورنځي کې ملیونونه ریکارډونه شتون ولري.

د ګډ حالت سره د واحد مایکرو سرویس څخه د مایکرو خدماتو کلستر ته حرکت کول ، دا د ترلاسه کولو ریاست API پلي کول لږ کوچني کیږي. په نوي حالت کې، د هر مایکرو سرویس دولتي پلورنځي د ټول انځور یوازې برخه لري (هغه شیان چې کیلي یې په ځانګړي برخې کې نقشه شوې وې). موږ باید دا معلومه کړو چې په کوم مثال کې د هغه شی حالت شتون لري چې موږ ورته اړتیا لرو، او موږ دا د تار میټاډاټا پراساس ترسره کړل، لکه څنګه چې لاندې ښودل شوي:

نه یوازې پروسس کول: څنګه موږ د کافکا سټریمونو څخه توزیع شوی ډیټابیس جوړ کړ ، او له دې څخه څه راغلل

شکل 7: د سټریم میټاډاټا په کارولو سره، موږ معلومه کوو چې د کوم مثال څخه د مطلوب څیز حالت پوښتنه کول؛ ورته طریقه د GET ALL API سره کارول شوې وه

کلیدي موندنې

په کافکا سټریمونو کې دولتي پلورنځي کولی شي د حقیقت توزیع شوي ډیټابیس په توګه کار وکړي ،

  • په دوامداره توګه په کافکا کې نقل شوی
  • A CRUD API په اسانۍ سره د داسې سیسټم په سر کې رامینځته کیدی شي
  • د ډیری برخو اداره کول یو څه ډیر پیچلي دي
  • دا هم ممکنه ده چې یو یا څو دولتي پلورنځي د سټرینګ ټوپولوژي کې اضافه کړئ ترڅو مرستندویه ډیټا ذخیره کړئ. دا اختیار د دې لپاره کارول کیدی شي:
  • د جریان پروسس کولو پرمهال د محاسبې لپاره اړین ډیټا اوږدمهاله ذخیره کول
  • د ډیټا اوږدمهاله ذخیره کول چې ممکن بل ځل د سټرینګ مثال چمتو کولو کې ګټور وي
  • ډیر نور...

دا او نورې ګټې د کافکا جریانونه زموږ په څیر ویشل شوي سیسټم کې د نړیوال دولت ساتلو لپاره مناسب دي. د کافکا سټریمونه په تولید کې خورا د باور وړ ثابت شوي (موږ د دې له مینځه وړلو راهیسې په حقیقت کې هیڅ پیغام له لاسه نه دی ورکړی) ، او موږ ډاډه یو چې د دې وړتیاوې به دلته ودریږي!

سرچینه: www.habr.com

Add a comment