ticketing.toml (اختیاری) کا ہر اندراج ماحولیاتی متغیر کے طور پر بھی دیا جا سکتا ہے۔ ترجیح ماحولیاتی متغیر > ticketing.toml > طے شدہ قدر ہے، اور کلید و بولین قدروں میں بڑے/چھوٹے حروف کا فرق نہیں کیا جاتا۔ Docker امیج scratch پر مبنی ہے اس لیے کنفیگریشن کو ماحولیاتی متغیرات کے ذریعے فراہم کرنا طے شدہ طریقہ ہے (کنفیگریشن فائل استعمال کرنے کے لیے اسے ماؤنٹ کر کے CONFIG سے راستہ متعین کریں)۔
| ماحولیاتی متغیر | طے شدہ قدر | تفصیل |
|---|---|---|
PORT (SERVER_PORT) | 5225 | TCP لسن پورٹ۔ کلسٹر موڈ میں نظر انداز ہوتا ہے اور CLUSTER_SELF کا پورٹ استعمال ہوتا ہے |
DEBUG (SERVER_DEBUG) | بلڈ کے مطابق | 1/true ہونے پر debug لاگ |
SOCKET_BIND | 0.0.0.0 | لسن ایڈریس |
SOCKET_NODELAY | true | TCP_NODELAY |
SOCKET_READ_BUF_LEN | 4096 | ہر کنکشن کا ریڈ بفر (بائٹس) |
SOCKET_REPLY_QUEUE | 1024 | ہر کنکشن کے لیے جواب قطار کی لمبائی |
SOCKET_REPLY_BATCH | 64 | ایک ہی write میں جمع کر کے بھیجے جانے والے جوابات کی زیادہ سے زیادہ تعداد |
SWEEP_INTERVAL_SECS | 5 | میعاد ختم شدہ کلیدوں کی صفائی کا وقفہ (سیکنڈ) |
CLUSTER_SELF | (کوئی نہیں) | اس نوڈ کا اعلان کردہ ایڈریس host:port۔ موجود ہو تو کلسٹر موڈ فعال ہوتا ہے |
CLUSTER_PEERS | (کوئی نہیں) | نوڈ ایڈریسز کی فہرست (کاما سے الگ)۔ ترتیب = پروموشن کی ترجیح، self شامل ہونا لازمی، کم از کم 2 |
CONFIG | ./conf/ticketing.toml | کنفیگریشن فائل کا راستہ |
[cluster] (یا CLUSTER_*) موجود نہ ہو تو سنگل نوڈ۔ سب سے تیز ہے لیکن دوبارہ چلانے پر مختصر وقفہ آتا ہے اور حالت میموری میں ہونے کی وجہ سے دوبارہ چلانے پر ختم ہو جاتی ہے (lease حفاظتی جال ہے)۔CLUSTER_PEERS (ترجیحی ترتیب میں) اور خود کی طرف اشارہ کرنے والا CLUSTER_SELF ہوتا ہے۔ زندہ نوڈز میں سب سے زیادہ ترجیح رکھنے والا نوڈ ایکٹیو بنتا ہے اور باقی اسٹینڈ بائی کے طور پر ریئل ٹائم ری پلیکیشن حاصل کرتے ہیں۔ تفصیلی اصول کے لیے کام کرنے کا اصول اور پروٹوکول — سرور ↔ سرور ملاحظہ کریں۔Kubernetes کلسٹر کی تعیناتی کے لیے StatefulSet + ہیڈ لیس سروس استعمال ہوتی ہے۔ ہر پوڈ کو ایک مستحکم DNS نام (
ticketing-0.ticketing…،ticketing-1.ticketing…) دیا جاتا ہے، ان ناموں کو ترجیحی ترتیب میںCLUSTER_PEERSمیں شامل کیا جاتا ہے اور ہر پوڈ کاCLUSTER_SELFdownward API (metadata.name) کے ذریعے خودکار طور پر شامل کیا جاتا ہے۔
Ctrl+C) کرنے پر ہینڈ آف کے ذریعے اسٹینڈ بائی پروموٹ ہو جاتا ہے اور کلائنٹس منتقل ہو جاتے ہیں۔sarolab/ticketing · Github: saro-lab/ticketing