پيغام بروکرز کي سمجهڻ. ActiveMQ ۽ Kafka سان ميسيجنگ جي ميڪنڪس کي سکڻ. باب 1

سلام هر!

مون هڪ ننڍڙو ڪتاب ترجمو ڪرڻ شروع ڪيو:
«پيغام بروکرز کي سمجهڻ
ليکڪ: Jakub Korab، پبلشر: O'Reilly Media, Inc.، اشاعت جي تاريخ: جون 2017، ISBN: 9781492049296.

ڪتاب جي تعارف مان:
"... هي ڪتاب توهان کي سيکاريندو ته بروکر ميسيجنگ سسٽم جي باري ۾ ڪيئن سوچيو وڃي، ٻن مشهور بروکر ٽيڪنالاجيز جو مقابلو ۽ مقابلو ڪيو وڃي: Apache ActiveMQ ۽ Apache Kafka. اهو استعمال جي ڪيسن ۽ ترقي جي ترغيب جو خاڪو ڪندو جيڪي انهن جي ڊولپرز کي هڪ ئي علائقي ڏانهن تمام مختلف طريقا اختيار ڪرڻ جي هدايت ڪن ٿا- هڪ وچولي بروکر سان سسٽم جي وچ ۾ پيغام ڏيڻ. اسان انهن ٽيڪنالاجيز کي زمين کان مٿي ڏسنداسين ۽ رستي ۾ مختلف ڊزائن جي چونڊ جي اثر کي اجاگر ڪنداسين. توهان ٻنهي پراڊڪٽس جي تمام گهڻي ڄاڻ حاصل ڪندا، هڪ سمجھندا ته انهن کي ڪيئن استعمال ڪرڻ گهرجي ۽ نه استعمال ڪرڻ گهرجي، ۽ انهي جي سمجھ ۾ ته ڇا ڏسڻ گهرجي جڏهن مستقبل ۾ ٻين ميسيجنگ ٽيڪنالاجيز تي غور ڪيو وڃي. … ”

هن وقت تائين ترجمو ڪيل حصا:
باب 1. تعارف
باب 3. ڪافڪا

آئون مڪمل ڪيل بابن کي پوسٽ ڪندس جيئن اهي ترجمو ڪيا ويا آهن.

باب 1

تعارف

سسٽم-کان-سسٽم ميسيجنگ آئي ٽي جي گهٽ ۾ گهٽ سمجھيل علائقن مان هڪ آهي. هڪ ڊولپر يا معمار جي طور تي، توهان شايد مختلف فريم ورڪ ۽ ڊيٽابيس سان تمام گهڻو واقف هوندا. بهرحال، اهو ممڪن آهي ته توهان کي صرف هڪ گذري واقفيت هجي ته ڪيئن بروکر تي ٻڌل ميسيجنگ ٽيڪنالاجيون ڪم ڪن ٿيون. جيڪڏهن توهان هن طرح محسوس ڪيو، پريشان نه ڪريو، توهان سٺي ڪمپني ۾ آهيو.

ماڻهن جو عام طور تي پيغام رسائيندڙ انفراسٽرڪچر سان تمام محدود رابطو آهي. اهي اڪثر ڪري هڪ ڊگهو وقت اڳ ٺاهيل سسٽم سان ڳنڍيندا آهن، يا انٽرنيٽ تان هڪ تقسيم ڊائون لوڊ ڪريو، ان کي PROM ۾ انسٽال ڪريو ۽ ان لاءِ ڪوڊ لکڻ شروع ڪريو. PROM ۾ انفراسٽرڪچر کي هلائڻ کان پوءِ، نتيجا ملائي سگھجن ٿا: پيغامن جي ناڪامي جي ڪري گم ٿي ويا آهن، موڪلڻ ڪم نه ٿو اچي جيئن توهان توقع ڪئي، يا بروڪرز توهان جي پروڊڪٽرن کي ”پڙهڻ“ ٿا ڏين يا توهان جي صارفين ڏانهن پيغام نه موڪلين.

واقف آواز؟

ھڪڙو عام منظر آھي جتي توھان جو پيغام ڪوڊ تمام سٺو ڪم ڪري ٿو، وقت لاء. جيستائين اهو ڪم ڪرڻ بند ڪري. اهو عرصو ڪنهن جي محافظ کي حفاظت جي غلط احساس ۾ وجهي ٿو، ٽيڪنالاجي جي بنيادي رويي بابت غلط عقيدن جي بنياد تي وڌيڪ ڪوڊ جي ڪري. جڏهن شيون غلط ٿيڻ شروع ٿين ٿيون، توهان کي هڪ مشڪل سچ سان منهن ڏيڻو پوي ٿو: ته توهان اصل ۾ پراڊڪٽ جي بنيادي رويي کي نه سمجهيا آهيو يا مصنفن پاران چونڊيل واپاري بندش، جهڙوڪ ڪارڪردگي بمقابله اعتماد، يا افقي اسڪاليبلٽي جي مقابلي ۾ ٽرانزيڪشن .

بغير ڪنهن گهڻي سمجھڻ جي ته بروڪرز ڪيئن ڪم ڪن ٿا، ماڻهو انهن جي ميسيجنگ سسٽم بابت بظاهر معقول بيان ڏين ٿا، جهڙوڪ:

  • سسٽم ڪڏهن به پيغام وڃائي نه سگهندو
  • پيغامن تي ترتيب وار عمل ڪيو ويندو
  • صارفين کي شامل ڪرڻ سان سسٽم تيز ٿي ويندو
  • پيغام صرف هڪ ڀيرو پهچائي ويندي

بدقسمتي سان، انهن مان ڪجهه بيانن تي ٻڌل آهن جيڪي صرف ڪجهه خاص حالتن ۾ لاڳو ٿين ٿيون، جڏهن ته ٻيا صرف غلط آهن.

هي ڪتاب توهان کي سيکاريندو ته بروکر تي ٻڌل ميسيجنگ سسٽم جي باري ۾ ڪيئن سوچيو وڃي، ٻن مشهور بروکر ٽيڪنالاجيز جو مقابلو ۽ ان جي ابتڙ: Apache ActiveMQ ۽ Apache Kafka. اهو استعمال جي ڪيسن ۽ ترقي جي ترغيب جو خاڪو ڪندو جيڪي انهن جي ڊولپرز کي هڪ ئي علائقي ڏانهن تمام مختلف طريقا اختيار ڪرڻ جي هدايت ڪن ٿا- هڪ وچولي بروکر سان سسٽم جي وچ ۾ پيغام ڏيڻ. اسان انهن ٽيڪنالاجيز کي زمين کان مٿي ڏسنداسين ۽ رستي ۾ مختلف ڊزائن جي چونڊ جي اثر کي اجاگر ڪنداسين. توهان ٻنهي پراڊڪٽس جي تمام گهڻي ڄاڻ حاصل ڪندا، هڪ سمجھندا ته انهن کي ڪيئن استعمال ڪرڻ گهرجي ۽ نه استعمال ڪرڻ گهرجي، ۽ هڪ سمجهه ۾ ڇا ڏسڻ گهرجي جڏهن مستقبل ۾ ٻين ميسيجنگ ٽيڪنالاجيز تي غور ڪيو وڃي.

اسان شروع ڪرڻ کان اڳ، اچو ته بنيادي ڳالهين تي وڃو.

ميسيجنگ سسٽم ڇا آهي ۽ ان جي ضرورت ڇو آهي؟

ٻن ايپليڪيشنن لاءِ ھڪ ٻئي سان ڳالھ ٻولھ ڪرڻ لاءِ، انھن کي پھريائين ھڪ انٽرفيس جي وضاحت ڪرڻ گھرجي. هن انٽرفيس جي وضاحت ڪرڻ ۾ ٽرانسپورٽ يا پروٽوڪول کي چونڊڻ شامل آهي، جهڙوڪ HTTP، MQTT، يا SMTP، ۽ پيغام جي فارميٽس تي ڳالهين ڪرڻ جيڪي سسٽم جي وچ ۾ تبديل ڪيا ويندا. اهو هڪ سخت عمل ٿي سگهي ٿو، جهڙوڪ هڪ XML اسڪيما جي وضاحت ڪرڻ سان پيغام پيل لوڊ جي قيمت گهرجن، يا اهو تمام گهٽ رسمي ٿي سگهي ٿو، جهڙوڪ ٻن ڊولپرز جي وچ ۾ هڪ معاهدو ته HTTP درخواست جو ڪجهه حصو ڪلائنٽ جي سڃاڻپ ڪندڙ تي مشتمل هوندو.

جيستائين پيغامن جي شڪل ۽ ترتيب جنهن ۾ اهي موڪليا ويا آهن، سسٽم جي وچ ۾ هڪجهڙائي رکن ٿا، اهي ٻئي سسٽم جي عمل جي باري ۾ پريشان ٿيڻ کان سواء هڪ ٻئي سان رابطو ڪري سگهن ٿا. انهن سسٽم جا اندروني، جهڙوڪ پروگرامنگ ٻولي يا فريم ورڪ استعمال ٿيل، وقت سان تبديل ٿي سگهن ٿيون. جيستائين معاهدو پاڻ برقرار آهي، ڳالهه ٻولهه ٻئي طرف کان تبديلين کان سواءِ جاري رهي سگهي ٿي. هن انٽرفيس ذريعي ٻه سسٽم مؤثر طور تي ڊيڪپل (جدا ٿيل) آهن.

ميسيجنگ سسٽم ۾ عام طور تي ٻن سسٽمن جي وچ ۾ هڪ وچولي شامل آهي جيڪو وصول ڪندڙ يا وصول ڪندڙن کان موڪليندڙ کي وڌيڪ ڊيڪپل (الگ) ڪرڻ لاءِ رابطو ڪري ٿو. انهي صورت ۾، پيغام رسائيندڙ سسٽم موڪليندڙ کي پيغام موڪلڻ جي اجازت ڏئي ٿو بغير ڄاڻڻ جي جتي وصول ڪندڙ آهي، ڇا هو فعال آهي، يا ڪيترا مثال موجود آهن.

اچو ته ڏسون ڪجھه تشبيهون انهن قسمن جي مسئلن لاءِ جيڪي هڪ پيغام رسائيندڙ سسٽم حل ڪري ٿو ۽ ڪجهه بنيادي شرطن کي متعارف ڪرايو.

پوائنٽ کان نڪتو

اليگزينڊررا پوسٽ آفيس ڏانهن وڃي ٿي آدم کي هڪ پيڪيج موڪلڻ لاءِ. هوءَ دريءَ ڏانهن وڃي ٿي ۽ ملازم کي پيڪيج هٿ ڪري ٿي. ملازم پيڪيج کڻي ٿو ۽ اليگزينڊررا کي هڪ رسيد ڏئي ٿو. جڏهن پيڪيج موڪليو وڃي ته آدم کي گهر ۾ رهڻ جي ضرورت ناهي. اليگزينڊررا کي يقين آهي ته اهو پيڪيج مستقبل ۾ ڪنهن نقطي تي آدم تائين پهچايو ويندو ۽ پنهنجي ڪاروبار بابت جاري رکي سگهي ٿو. بعد ۾ ڪجهه نقطي تي آدم هڪ پيڪيج حاصل ڪري ٿو.

هي هڪ پيغام رسائيندڙ ماڊل جو هڪ مثال آهي پوائنٽ کان پوائنٽ. پوسٽ آفيس هتي پارسل ورهائڻ واري ميڪانيزم جي طور تي ڪم ڪري ٿي، انهي کي يقيني بڻائي ته هر پارسل هڪ ڀيرو پهچايو وڃي. پوسٽ آفيس استعمال ڪندي پيڪيج موڪلڻ واري عمل کي پيڪيج جي ترسيل کان الڳ ڪري ٿو.
کلاسک ميسيجنگ سسٽم ۾، پوائنٽ کان پوائنٽ ماڊل لاڳو ڪيو ويو آهي قطار. قطار FIFO جي طور تي ڪم ڪري ٿو (پهرين اندر، پهرين ٻاهر) بفر جيڪو هڪ يا وڌيڪ صارفين طرفان رڪنيت حاصل ڪري سگهجي ٿو. هر پيغام صرف پهچايو ويندو آهي سبسڪرائب ٿيل صارفين مان هڪ ڏانهن. قطارون عام طور تي صارفين جي وچ ۾ پيغامن کي منصفانه طور تي ورهائڻ جي ڪوشش ڪندا آهن. صرف هڪ صارف هي پيغام وصول ڪندو.

اصطلاح "پائيدار" قطار تي لاڳو ٿئي ٿو. اعتبار هڪ سروس پراپرٽي آهي جيڪا يقيني بڻائي ٿي ته ميسيجنگ سسٽم فعال سبسڪرائبرن جي غير موجودگي ۾ پيغام جاري ڪندو جيستائين صارف پيغام پهچائڻ لاءِ قطار ۾ سبسڪرائب نه ڪندو.

Reliability سان اڪثر مونجهارو آهي استقامت ۽ جيتوڻيڪ ٻه اصطلاح استعمال ڪيا ويندا آهن هڪ ٻئي سان، اهي مختلف ڪم ڪن ٿا. تسلسل اهو طئي ڪري ٿو ته ڇا پيغام رسائيندڙ سسٽم ان کي وصول ڪرڻ ۽ صارف ڏانهن موڪلڻ جي وچ ۾ ڪنهن قسم جي ذخيري ڏانهن پيغام لکي ٿو. قطار ڏانهن موڪليا ويا پيغام مستقل ٿي سگهن ٿا يا نه.
پوائنٽ-ٽو-پوائنٽ پيغام استعمال ڪيو ويندو آهي جڏهن استعمال جي صورت ۾ پيغام تي هڪ ڀيرو عمل جي ضرورت هوندي آهي. مثالن ۾ شامل آهي پئسن کي اڪائونٽ ۾ جمع ڪرڻ يا ترسيل آرڊر مڪمل ڪرڻ. اسان بعد ۾ بحث ڪنداسين ڇو ته پيغام رسائيندڙ سسٽم پنهنجي طور تي هڪ وقت جي ترسيل مهيا ڪرڻ جي قابل ناهي ۽ ڇو قطار بهترين طور تي پهچائڻ جي گارنٽي فراهم ڪري سگهي ٿي. گهٽ ۾ گهٽ هڪ ڀيرو.

ناشر- سبسڪرائبر

گبريلا ڪانفرنس نمبر ڊائل ڪري ٿي. جڏهن هوءَ ڪانفرنس سان جڙيل آهي، هوءَ سڀ ڪجهه ٻڌي ٿي جيڪا اسپيڪر چوي ٿي، باقي ڪال شرڪت ڪندڙن سان گڏ. جڏهن هوء ٻاهر نڪرندي آهي، هوء ياد اچي ٿي ته ڇا چيو ويو آهي. جڏهن ٻيهر ڳنڍيو ويو، هوء ٻڌندي رهي ته ڇا چيو پيو وڃي.

هي هڪ پيغام رسائيندڙ ماڊل جو هڪ مثال آهي شايع ڪرڻ- رڪنيت حاصل ڪرڻ. ڪانفرنس ڪالنگ هڪ براڊ ڪاسٽ ميڪانيزم طور ڪم ڪري ٿي. ڳالهائيندڙ شخص کي پرواه ناهي ته ڪيترا ماڻهو هن وقت ڪال تي آهن - سسٽم يقيني بڻائي ٿو ته جيڪو به هن وقت ڳنڍيل آهي اهو ٻڌندو جيڪو چيو پيو وڃي.
کلاسک ميسيجنگ سسٽم ۾، پبلش-سبسڪرائب ميسيجنگ ماڊل ذريعي لاڳو ڪيو ويو آهي مٿيون. موضوع ڪانفرنسنگ ميکانيزم جي طور تي ساڳيو نشر ڪرڻ جو طريقو مهيا ڪري ٿو. جڏهن هڪ پيغام هڪ موضوع ڏانهن موڪليو ويو آهي، اهو ورهايو ويندو آهي سڀني رڪنيت حاصل ڪندڙن لاء.

موضوع عام طور تي آهن ناقابل اعتبار (ناقابل اعتماد). بس هڪ ٻڌندڙ وانگر جيڪو اهو ٻڌي نٿو سگهي ته ڪانفرنس ڪال تي ڇا چيو ويندو آهي جڏهن ٻڌندڙ ختم ٿي ويندو آهي، موضوع جا رڪن ڪنهن به پيغام کي وڃائي ڇڏيندا آهن جيڪي موڪليا ويا آهن جڏهن اهي آف لائن آهن. انهي سبب لاء، اسان اهو چئي سگهون ٿا ته موضوع هڪ پهچائڻ جي ضمانت فراهم ڪن ٿا هڪ ڀيرو کان وڌيڪ نه هر صارف لاء.

اشاعت-سبسڪرائب پيغام عام طور تي استعمال ڪيو ويندو آهي جڏهن پيغام فطرت ۾ معلوماتي هوندا آهن ۽ هڪ پيغام جو نقصان خاص طور تي اهم ناهي. مثال طور، هڪ موضوع سينسرز جي هڪ گروپ مان هڪ ڀيرو في سيڪنڊ ۾ درجه حرارت جي پڙهائي منتقل ڪري سگهي ٿو. هڪ سسٽم جيڪو موجوده درجه حرارت ۾ دلچسپي رکي ٿو ۽ جيڪو هڪ موضوع جي رڪنيت حاصل ڪري ٿو پريشان نه ٿيندو جيڪڏهن اهو پيغام وڃائي ٿو - ٻيو ويجهي مستقبل ۾ پهچي ويندو.

هائبرڊ ماڊلز

اسٽور جي ويب سائيٽ آرڊر پيغامن کي "پيغام جي قطار" ۾ رکي ٿي. انهن پيغامن جو مکيه صارف انتظامي نظام آهي. ان کان علاوه، آڊٽ سسٽم کي انهن آرڊر جي پيغامن جون ڪاپيون ايندڙ ٽريڪنگ لاءِ هجڻ گهرجن. ٻئي سسٽم پيغامن کي منتقل ڪرڻ جي اجازت نٿا ڏين، جيتوڻيڪ سسٽم پاڻ کي ڪجهه وقت لاء دستياب ناهي. ويب سائيٽ کي ٻين سسٽم کان واقف نه هجڻ گهرجي.

استعمال جا ڪيس اڪثر ڪري پبلش-سبسڪرائب ۽ پوائنٽ-ٽو-پوائنٽ ميسيجنگ ماڊلز جي ميلاپ جي ضرورت هونديون آهن، جيئن ته جڏهن گھڻن سسٽم کي پيغام جي ڪاپي جي ضرورت هوندي آهي ۽ پيغام جي نقصان کي روڪڻ لاءِ اعتماد ۽ استقامت ٻنهي جي ضرورت هوندي آهي.

انهن ڪيسن ۾ هڪ منزل جي ضرورت آهي (قطار ۽ عنوانن لاءِ هڪ عام اصطلاح) جيڪو پيغامن کي بنيادي طور تي هڪ موضوع جي طور تي ورهائي ٿو، انهي ڪري ته هر پيغام هڪ الڳ سسٽم ڏانهن موڪليو ويو آهي جيڪو انهن پيغامن ۾ دلچسپي رکي ٿو، پر اهو پڻ جنهن ۾ هر سسٽم ڪيترن ئي صارفين جي وضاحت ڪري سگهي ٿو جيڪي ايندڙ وصول ڪن ٿا. پيغام، جيڪو وڌيڪ قطار وانگر آهي. هن معاملي ۾ پڙهڻ جو قسم آهي هڪ ڀيرو هر اسٽيڪ هولڊر لاءِ. اهي هائبرڊ منزلون اڪثر ڪري استحڪام جي ضرورت هونديون آهن ته جيئن هڪ صارف آف لائن ٿي وڃي، پيغام جيڪي ان وقت موڪليا ويا آهن وصول ڪيا ويندا آهن صارف جي ٻيهر ڳنڍڻ کان پوء.

هائبرڊ ماڊل نوان نه آهن ۽ اڪثر ميسيجنگ سسٽم ۾ استعمال ڪري سگھجن ٿا، جن ۾ ActiveMQ (مجازي يا جامع منزلن ذريعي جيڪي عنوانن ۽ قطارن کي گڏ ڪن ٿا) ۽ ڪافڪا (واضح طور تي، ان جي منزل جي ڊيزائن جي بنيادي ملڪيت جي طور تي).

ھاڻي ته اسان وٽ ڪجھ بنيادي اصطلاح آھن ۽ سمجھڻ لاءِ ته اسان ڪھڙي لاءِ ميسيجنگ سسٽم استعمال ڪري سگھون ٿا، اچو ته تفصيل ڏانھن ھيٺ وڃون.

ترجمو ڪيو ويو: tele.gg/middle_java

هيٺيون ترجمو ڪيل حصو: باب 3. ڪافڪا

جاري رکڻ گهرجي…

جو ذريعو: www.habr.com

تبصرو شامل ڪريو