خرگوش ایم کیو۔ حصہ 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. بروکر، تصدیق ملنے پر، قطار سے پیغام کی ایک کاپی ہٹا دیتا ہے۔ پھر RAM اور ڈسک سے حذف ہوجاتا ہے۔

آر پی سی

عمل 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

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