خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP

ہیلو، حبر! میں اس علم کی ایک نصابی کتاب-ریفرنس بک شیئر کرنا چاہوں گا جسے میں نے اکٹھا کیا ہے۔ RabbitMQ اور مختصر سفارشات اور نتائج میں سمیٹیں۔

مواد کی میز

  • خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP اور RPC
  • خرگوش ایم کیو۔ حصہ 2۔ تبادلے کو سمجھنا
  • خرگوش ایم کیو۔ حصہ 3۔ قطاروں اور پابندیوں کو سمجھنا
  • خرگوش ایم کیو۔ حصہ 4۔ پیغامات اور فریموں کو سمجھنا
  • خرگوش ایم کیو۔ حصہ 5: پیغام کی اشاعت اور استعمال کی کارکردگی
  • خرگوش ایم کیو۔ حصہ 6۔ فیڈریشن اور بیلچے کے ماڈیولز کا جائزہ
  • خرگوش ایم کیو۔ حصہ 7۔ کنکشن اور چینل کے بارے میں تفصیلات
  • خرگوش ایم کیو۔ حصہ 8. RabbitMQ in .NET
  • خرگوش ایم کیو۔ حصہ 9۔ نگرانی

مختصراً AMQP کے بارے میں

AMQP (Advanced Message Quueing Protocol) سسٹم کے اجزاء کے درمیان پیغامات کی ترسیل کے لیے ایک کھلا پروٹوکول ہے۔ بنیادی خیال یہ ہے کہ انفرادی سب سسٹم (یا آزاد ایپلی کیشنز) ایک AMQP بروکر کے ذریعے صوابدیدی پیغامات کا تبادلہ کر سکتے ہیں، جو روٹنگ کو سنبھالتا ہے، ممکنہ طور پر ترسیل کی ضمانت دیتا ہے، ڈیٹا اسٹریمز کو تقسیم کرتا ہے، اور مخصوص پیغام کی اقسام کو سبسکرائب کرتا ہے۔

پروٹوکول AMQP تین تصورات متعارف کراتے ہیں:

خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP

  • exchange (تبادلہ نقطہ یا تبادلہ) - اس پر پیغامات بھیجے جاتے ہیں۔ ایکسچینج پوائنٹ پیغام تقسیم کرتا ہے۔ ایک یا زیادہ قطاروں میں۔ وہ پیغامات کو قطار میں بھیجتا ہے۔ بنائے گئے رابطوں کی بنیاد پر (bindingاس کے اور قطار کے درمیان
  • queue (قطار) ڈسک پر یا رام میں ڈیٹا کا ڈھانچہ ہے۔ پیغامات کے لنکس کو اسٹور کرتا ہے اور پیغامات کی کاپیاں واپس کرتا ہے۔ consumers (صارفین کے لیے)
  • binding (بائنڈنگ) - ایک اصول جو ایکسچینج پوائنٹ کو بتاتا ہے کہ ان پیغامات کو کس قطار میں جانا چاہیے۔

پروٹوکول اوپر چلتا ہے۔ TCP / IP.

مختصراً ایرلنگ کے بارے میں

پراجیکٹ کا سورس کوڈ ریپوزٹری میں واقع ہے۔ GitHub کےفن تعمیر RabbitMQ-سرور کی بنیاد پر ایرلنگ اور بیم۔

Erlang کمپنی کی طرف سے تیار Ericsson 1980 کی دہائی کے وسط میں 99,999% اپ ٹائم درکار ایپلی کیشنز کے لیے ایک تقسیم شدہ، غلطی کو برداشت کرنے والے، ریئل ٹائم سسٹم کے طور پر۔ Erlang مختلف صنعتوں اور جدید ایپلی کیشنز میں استعمال کیا جاتا ہے، جیسے WhatsAppآپ مضمون میں مزید پڑھ سکتے ہیں۔ واٹس ایپ کا فن تعمیر، جسے فیس بک نے 19 بلین ڈالر میں خریدا۔

RabbitMQ کے بارے میں مختصراً

خرگوش ایک اوپن سورس میسج بروکر ہے۔ یہ تمام بنیادی پروٹوکول اصولوں کے مطابق پیغامات کو روٹ کرتا ہے۔ AMQP۔ میں بیان کیا گیا ہے۔ وضاحتیں. RabbitMQ پروٹوکول کو لاگو اور سپلیمنٹ کرتا ہے۔ AMQP.

میں میسجنگ ماڈل کا بنیادی خیال RabbitMQ یہ ہے producer (ناشر) پیغامات کو براہ راست قطار میں نہیں بھیجتا ہے۔ درحقیقت، اور اکثر اوقات، پبلشر کو یہ بھی معلوم نہیں ہوتا کہ آیا پیغام کسی بھی قطار میں پہنچایا جائے گا۔

اس کے بجائے، ایک ناشر صرف تبادلے کو پیغامات بھیج سکتا ہے۔ ایکسچینج پبلشرز سے پیغامات وصول کرتا ہے اور انہیں قطاروں میں بھیج دیتا ہے۔ ایکسچینج کو معلوم ہونا چاہیے کہ موصولہ پیغام کے ساتھ کیا کرنا ہے۔ کیا اسے کسی مخصوص قطار میں شامل کرنا چاہیے؟ کیا اسے متعدد قطاروں میں شامل کرنا چاہئے؟ یا پیغام کو نظر انداز کر دیا جائے۔

خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP

کام کے بارے میں مختصراً RabbitMQ مندرجہ ذیل کے طور پر بیان کیا جا سکتا ہے:

  1. ناشر ایک مخصوص تبادلے کو پیغام بھیجتا ہے۔
  2. ایک تبادلہ، پیغام موصول ہونے پر، اسے ایک یا ایک سے زیادہ قطاروں میں اس کے اور قطار کے درمیان پابند اصولوں کے مطابق لے جاتا ہے۔
  3. قطار اس پیغام کا حوالہ محفوظ کرتی ہے۔ پیغام خود RAM میں یا ڈسک پر محفوظ ہوتا ہے۔
  4. ایک بار جب صارف قطار سے پیغام وصول کرنے کے لیے تیار ہو جاتا ہے، سرور حوالہ کے ذریعے پیغام کی ایک کاپی بناتا ہے اور اسے بھیج دیتا ہے۔
  5. صارف پیغام وصول کرتا ہے اور بروکر کو تصدیق بھیجتا ہے۔
  6. تصدیق حاصل کرنے کے بعد، بروکر قطار سے پیغام کی کاپی ہٹا دیتا ہے۔ یہ پھر اسے رام اور ڈسک سے حذف کر دیتا ہے۔

آر پی سی

عمل RPC (ریموٹ طریقہ کار کال) نیوکلئس کے ساتھ عملی طور پر تمام تعاملات کو زیر کرتا ہے۔ RabbitMQمثال کے طور پر، کلائنٹ کی شرائط کے ساتھ ابتدائی بات چیت RabbitMQ، ایک خاص عمل کو ظاہر کرتا ہے۔ RPCایک بار جب یہ سلسلہ مکمل ہو جائے، RabbitMQ کلائنٹ سے درخواستیں قبول کرنے کے لیے تیار ہوں گے:

خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP

تفصیلات میں بھی AMQP کلائنٹ اور سرور دونوں ہی حکم جاری کر سکتے ہیں۔ اس کا مطلب ہے کہ کلائنٹ کو سرور کے ساتھ تعامل کی توقع ہے۔ کمانڈز کلاسز اور طریقے ہیں۔ مثال کے طور پر، Connection.Start - طریقہ کال Start کلاس Connection.

کنکشن اور چینلز

کلائنٹ اور سرور کے درمیان معلومات کے اس طرح کے تبادلے کے لیے، درج ذیل کو استعمال کیا جاتا ہے: چینلز. کے اندر چینلز بنائے جاتے ہیں۔ مخصوص کنکشنہر چینل دوسرے چینلز سے الگ تھلگ ہے۔ ہم وقت ساز صورت میں، جواب موصول ہونے تک اگلی کمانڈ پر عمل درآمد ممکن نہیں ہے۔

متوازی طور پر کمانڈ بھیجنے کے قابل ہونے کے لیے، کئی چینلز کو کھولنا ضروری ہے۔ ہر چینل ایک الگ تخلیق کرتا ہے۔ Erlang عمل ایک کنکشن میں متعدد چینلز ہو سکتے ہیں (بہسنکیتن)۔ ہر چینل کے لیے، میموری میں کچھ ڈھانچے اور اشیاء ہیں۔ لہذا، ایک کنکشن کے اندر جتنے زیادہ چینلز ہوں گے۔ RabbitMQ زیادہ میموری استعمال کرتا ہے۔ اس طرح کے کنکشن کو کنٹرول کرنے کے لیے۔

خرگوش ایم کیو۔ حصہ 1۔ تعارف۔ ایرلنگ، AMQP

استعمال کرتے ہوئے کنکشن اور چینل بنانے کی ایک سادہ مثال RabbitMQ.Client:

// ...
private void TryConnect()
{
    var factory = new ConnectionFactory() 
    {
        HostName = "host_name",
        UserName = "user_name",
        Password = "p@ssword",
        // Включение автоматичекого восстановления
        // соединения после сбоев сети 
        AutomaticRecoveryEnabled = true
    };
    _connection = factory.CreateConnection();
}
// ...
public void CreateChanel()
{
    _channel = _connection.CreateModel();
    // other options 
}

ہر آپریشن کے لیے نیا کنکشن کھولنے کی سختی سے حوصلہ شکنی کی جاتی ہے۔ اعلی اخراجات کی قیادت کریں گےچینلز کو بھی مستقل ہونا چاہیے، لیکن پروٹوکول کی بہت سی خرابیاں چینل کو بند کرنے کا سبب بنتی ہیں، اس لیے چینل کی زندگی کنکشن کے مقابلے میں کم ہو سکتی ہے۔

RabbitMQ کہاں استعمال ہوتا ہے؟

مائیکرو سروسز کے تناظر میں، پروٹوکول AMQP اور اس کا نفاذ RabbitMQ اکثر کے لئے استعمال کیا جاتا ہے متضاد تعامل خدمات کے درمیان۔

سیاق و سباق میں IIOT پروٹوکول AMQP اور اس کا نفاذ RabbitMQ سرورز (سرور سے سرور) کے درمیان ڈیٹا کے تبادلے کے لیے استعمال کیا جاتا ہے۔ وہ ایک پلگ ان بھی استعمال کرتے ہیں۔ MQTT پلگ ان RabbitMQ جو پروٹوکول کا نفاذ ہے۔ ایم کیوٹی ٹی۔ کم رفتار، زیادہ تاخیر والے ماحول میں سینسر اور سرور کے درمیان ڈیٹا کی ترسیل کے لیے (تعاون یافتہ پروٹوکولز کی مکمل فہرست درج کی گئی ہے منصوبے کی ویب سائٹ).

اگلے مضمون میں، ہم ایکسچینجز کو مزید تفصیل سے دریافت کرنا شروع کریں گے۔

حوالہ جات

ماخذ: www.habr.com

نیا تبصرہ شامل کریں