menuTicketing

Ticketing سرور کی تعیناتی

ماحول
موڈ
bash
کلائنٹ کنکشن کی مثال
rust
nc کے ساتھ فوری ٹیسٹ
bash

ماحولیاتی متغیرات

ticketing.toml (اختیاری) کا ہر اندراج ماحولیاتی متغیر کے طور پر بھی دیا جا سکتا ہے۔ ترجیح ماحولیاتی متغیر > ticketing.toml > طے شدہ قدر ہے، اور کلید و بولین قدروں میں بڑے/چھوٹے حروف کا فرق نہیں کیا جاتا۔ Docker امیج scratch پر مبنی ہے اس لیے کنفیگریشن کو ماحولیاتی متغیرات کے ذریعے فراہم کرنا طے شدہ طریقہ ہے (کنفیگریشن فائل استعمال کرنے کے لیے اسے ماؤنٹ کر کے CONFIG سے راستہ متعین کریں)۔

ماحولیاتی متغیرطے شدہ قدرتفصیل
PORT (SERVER_PORT)5225TCP لسن پورٹ۔ کلسٹر موڈ میں نظر انداز ہوتا ہے اور CLUSTER_SELF کا پورٹ استعمال ہوتا ہے
DEBUG (SERVER_DEBUG)بلڈ کے مطابق1/true ہونے پر debug لاگ
SOCKET_BIND0.0.0.0لسن ایڈریس
SOCKET_NODELAYtrueTCP_NODELAY
SOCKET_READ_BUF_LEN4096ہر کنکشن کا ریڈ بفر (بائٹس)
SOCKET_REPLY_QUEUE1024ہر کنکشن کے لیے جواب قطار کی لمبائی
SOCKET_REPLY_BATCH64ایک ہی write میں جمع کر کے بھیجے جانے والے جوابات کی زیادہ سے زیادہ تعداد
SWEEP_INTERVAL_SECS5میعاد ختم شدہ کلیدوں کی صفائی کا وقفہ (سیکنڈ)
CLUSTER_SELF(کوئی نہیں)اس نوڈ کا اعلان کردہ ایڈریس host:port۔ موجود ہو تو کلسٹر موڈ فعال ہوتا ہے
CLUSTER_PEERS(کوئی نہیں)نوڈ ایڈریسز کی فہرست (کاما سے الگ)۔ ترتیب = پروموشن کی ترجیح، self شامل ہونا لازمی، کم از کم 2
CONFIG./conf/ticketing.tomlکنفیگریشن فائل کا راستہ

سنگل بمقابلہ کلسٹر

  • سنگل (1 نوڈ): اگر [cluster] (یا CLUSTER_*) موجود نہ ہو تو سنگل نوڈ۔ سب سے تیز ہے لیکن دوبارہ چلانے پر مختصر وقفہ آتا ہے اور حالت میموری میں ہونے کی وجہ سے دوبارہ چلانے پر ختم ہو جاتی ہے (lease حفاظتی جال ہے)۔
  • کلسٹر (بلا تعطل): کم از کم 2 نوڈز۔ ہر نوڈ کے پاس یکساں CLUSTER_PEERS (ترجیحی ترتیب میں) اور خود کی طرف اشارہ کرنے والا CLUSTER_SELF ہوتا ہے۔ زندہ نوڈز میں سب سے زیادہ ترجیح رکھنے والا نوڈ ایکٹیو بنتا ہے اور باقی اسٹینڈ بائی کے طور پر ریئل ٹائم ری پلیکیشن حاصل کرتے ہیں۔ تفصیلی اصول کے لیے کام کرنے کا اصول اور پروٹوکول — سرور ↔ سرور ملاحظہ کریں۔

Kubernetes کلسٹر کی تعیناتی کے لیے StatefulSet + ہیڈ لیس سروس استعمال ہوتی ہے۔ ہر پوڈ کو ایک مستحکم DNS نام (ticketing-0.ticketing…، ticketing-1.ticketing…) دیا جاتا ہے، ان ناموں کو ترجیحی ترتیب میں CLUSTER_PEERS میں شامل کیا جاتا ہے اور ہر پوڈ کا CLUSTER_SELF downward API (metadata.name) کے ذریعے خودکار طور پر شامل کیا جاتا ہے۔

بلا تعطل ری اسٹارٹ (رولنگ)

  1. پہلے اسٹینڈ بائی کو ایک ایک کر کے دوبارہ چلائیں (ایکٹیو خدمت جاری رکھتا ہے)۔
  2. آخر میں ایکٹیو کو بند (Ctrl+C) کرنے پر ہینڈ آف کے ذریعے اسٹینڈ بائی پروموٹ ہو جاتا ہے اور کلائنٹس منتقل ہو جاتے ہیں۔
  3. جو پرانا ایکٹیو بند کیا تھا اسے دوبارہ چلانے پر یہ موجودہ ایکٹیو کے اسٹینڈ بائی کے طور پر شامل ہو جاتا ہے (خودکار فیل بیک موجود نہیں)۔

مزید ملاحظہ کریں

  • امیج: sarolab/ticketing · Github: saro-lab/ticketing
  • کلائنٹ (بروکر) میں تمام نوڈ ایڈریسز رجسٹر کریں تاکہ خرابی کی صورت میں خودکار طور پر منتقل ہو سکے۔ زبان کے لحاظ سے استعمال کا طریقہ لائبریریاں میں ملاحظہ کریں۔