मीडिया सर्विस को एक से अधिक पॉड पर सही बनाएं और दो रन करें

FeatureMediaService
शिप
4 सितंबर 2026 को 8:20 pm बजे UTC
लेखक
Kamo
Commit
6ef1e59

मीडिया सर्विस ने कभी भी एक एकल प्रतिकृति चलाई है, इसलिए इसकी एक तैनाती कुल चैट आउटेज थी और यह एक पूर्ण चैट आउटेज थी। ओओएम समान था। यह दो नहीं चला सकता, क्योंकि वे सभी कोड में थे: 1. STOMP BROKER IN-HEAP है। सक्षमसरलब्रोकर का मतलब है कि ConvertAndSend केवल WebSockets तक पहुंचता है पॉड से जुड़ा हुआ है जो कॉल करता है। तेरह रिले नियंत्रकों ने पहले से ही इस सही ढंग से संभाला एक सादे डिस्पैचर (कोई कतार समूह नहीं) के साथ NATS को सब्सक्राइब करके, इसलिए हर पोड को हर जगह मिलती है संदेश और स्थानीय रूप से प्रकाशन। तेरह अन्य कॉल साइटों ने नहीं किया - टाइपिंग संकेतक, उपस्थिति, अपठित बैज, उत्तर अनुदान, WebRTC प्रस्ताव/answer/ICE, आने वाली चैट सूचनाएं — और प्रत्येक ने अपने इच्छित दर्शकों को लगभग आधे तक पहुंचाया होगा। StompFanout उन पैटर्न को सामान्य करता है जो पहले से ही उपयोग करते हैं: {destination, पेलोड} को प्रकाशित करें एक कोर NATS विषय, हर फली इसे अपने ब्रोकर में रिले करता है। कोर NATS, जेटस्ट्रीम नहीं, क्योंकि ये लाइव-मोमेंट इवेंट्स हैं जिनमें कोई मूल्य फिर से खेलना नहीं है और विषय को कवर करने वाली कोई स्ट्रीम नहीं है। क्योंकि कोर NATS प्रकाशक को भी वितरित करता है, भेजते हैं () स्थानीय रूप से भी नहीं लिखते हैं - कि यहां दो बार वितरित होगा। NATS डाउन के साथ यह स्थानीय भेजने के लिए वापस आता है, जो क्या है? मंच पहले किया था। 2.पर-नियंत्रण उपभोक्ता एक अनन्य टिकाऊ था। ChatSessionSubscriptionManager ने इसका नाम दिया जेटस्ट्रीम चैट सत्र के बाद टिकाऊ GUID, और एक टिकाऊ धक्का उपभोक्ता वास्तव में एक स्वीकार करता है ग्राहक दूसरे फली के बांध को मना कर दिया गया था [SUB-90012] और हर सदस्य जिसका सॉकेट उतर गया था वहाँ कुछ भी नहीं मिला - कोई संदेश नहीं पढ़ा रसीद, कोई सदस्य-added घटनाओं, कोई त्रुटि नहीं। अब एक ephemeral उपभोक्ता: कोई भी नाम नहीं, प्रति पॉड, सर्वर द्वारा reaped. यह हटा देता है कि उसने टकराव पर एक ताजा टिकाऊ नाम का आविष्कार किया। यह काम करता है, और यह एक लीक स्थायी सर्वर-साइड उपभोक्ता प्रति टकराव कि कभी भी नष्ट नहीं हुआ। 3. FIVE more FIXED-NAME DURABLES, नौकरी के आधार पर विपरीत उपचार की आवश्यकता है। रूपांतरण और वीओआईपी एसटीओएमपी रिले एक कोर प्रेषक के बजाय जेटस्ट्रीम के माध्यम से चला गया, इसलिए उनके पास समान ही था। Exlusivity बग - अब ephemeral, क्योंकि हर फली प्राप्त करना चाहिए। चैट-ईमेल सूचक, सामाजिक इनबाउंड उपभोक्ता और विपणन रूपांतरण उपभोक्ता को वास्तव में ONCE चलाने की आवश्यकता होती है, इसलिए वे अपना ध्यान रखते हैं टिकाऊ और एक वितरित समूह में शामिल हों, जिसका मतलब है कि एक जीवित व्यक्ति उस काम को उठाता है जब एक फली मर जाता है। मीडिया मार्ग पर चिपचिपा सत्र की आवश्यकता है, वैकल्पिक नहीं: ये STOMP क्लाइंट SockJS का उपयोग करते हैं, जिसका xhr-streaming/xhr-polling Fallback एक कनेक्शन के लिए खड़े कई HTTP अनुरोध हैं सत्र की स्थिति के खिलाफ जो एक पॉड की स्मृति में रहता है। राउंड-रोबिन इसे तोड़ देता है। ingressroute.yaml देखें। 1 -> 2. 367 टेस्ट पास.

सभी बदलाव

जैसा कि आप शिपिंग देखते हैं?

इन अद्यतनों में से प्रत्येक स्वचालित रूप से अपने कार्यक्षेत्र में उतरता है। प्रारंभ करें और सप्ताह के बाद इसे सप्ताह के अंत में देखें।.

Foreverमूल्य निर्धारण देखें