menuTicketing
close





उदाहरण सत्र (बाइट नोटेशन)

पूर्णांक बिग-एंडियन हैं। ·· केवल बाइट सीमा दिखाने के लिए है, यह वास्तविक बाइट नहीं है।

# तुरंत प्राप्ति (wait=5s, lease=30s), key="order-1234"
क्लाइंट → 'A' 00·05 00·1E "order-1234" \n
सर्वर   → 'A' 00·00·00·00·00·00·00·01 "order-1234" \n     (टोकन 1)

# कब्ज़े के दौरान प्रतीक्षा (दूसरा कनेक्शन, wait=1s)
क्लाइंट2 → 'A' 00·01 00·1E "order-1234" \n
                                       ... लंबित ...
# (a) यदि धारक इसे छोड़ दे तो तुरंत सौंपा जाता है
क्लाइंट  → 'R' "order-1234" \n
सर्वर   → 'R' "order-1234" \n                              (क्लाइंट: रिलीज़ किया गया)
सर्वर   → 'A' 00·00·00·00·00·00·00·02 "order-1234" \n      (क्लाइंट2: सौंपा गया, बड़ा टोकन)
# (b) यदि wait(1s) के अंदर न मिले
सर्वर   → 'T' "order-1234" \n                              (क्लाइंट2: टाइमआउट — कोई grant नहीं)

# अनुपस्थित की को रिलीज़ करना / अमान्य रिक्वेस्ट
क्लाइंट → 'R' "ghost" \n        → सर्वर 'N' "ghost" \n
क्लाइंट → 'Z' ...              → सर्वर 'E' "bad_op" \n

बाइनरी होने के कारण nc से भी इसे तुरंत जांचा जा सकता है।

sh
# प्राप्ति: key=order-1, wait=5s(00 05), lease=30s(00 1e)
printf 'A\x00\x05\x00\x1eorder-1\n' | nc -w1 127.0.0.1 5225 | xxd
# → 41 0000000000000001 6f72646572...  ('A' + token=1 + "order-1")

printf 'Rorder-1\n' | nc -w1 127.0.0.1 5225 | xxd    # → 52 ... ('R' + "order-1")
printf 'Zx\n'       | nc -w1 127.0.0.1 5225          # → Ebad_op

सर्वर ↔ सर्वर के बीच क्लस्टर रेप्लिकेशन प्रोटोकॉल प्रोटोकॉल (क्लस्टर) में बताया गया है।