इस प्रोजेक्ट के बारे में

QPub सर्वर एक स्व-होस्टेड मैसेजिंग सर्वर है जो रीयल-टाइम pub/sub चैनलों को जॉब कतारों के साथ जोड़ता है, जो REST और WebSocket इंटरफेस के माध्यम से उजागर होते हैं। यह उन टीमों के लिए है जो होस्टेड सेवा पर निर्भर रहने के बजाय अपना स्वयं का मैसेजिंग इंफ्रास्ट्रक्चर चलाना चाहते हैं। मुख्य क्षमताएं - चैनल: WebSocket पर वितरित प्रकाशित/सदस्यता मैसेजिंग, REST के माध्यम से प्रकाशन उपलब्ध है। - जॉब कतारें: कार्य आइटम को कतार में डालें और खींचें, वर्कर्स चलाएं, और वेबहुक प्राप्त करें। - मल्टी-टेनेंसी: टेनेंट एक दूसरे से अलग होते हैं और उन पर दर सीमाएं लागू की जा सकती हैं। - प्रमाणीकरण: API कुंजी और क्लाइंट टोकन पहुंच की रक्षा करते हैं; एक अलग नियंत्रण टोकन प्रावधान API की रक्षा करता है। - नियंत्रण API: टेनेंट, API कुंजी, सीमाएं, कतारें और वर्कर्स प्रबंधित करें, और रीयलटाइम आंकड़े और कनेक्शन निरीक्षण करें। सहायक सेवाएं सर्वर NATS JetStream, Redis और Postgres पर निर्भर करता है, जिसमें ड्राइवर सेटिंग के माध्यम से वैकल्पिक डेटाबेस के रूप में CockroachDB समर्थित है। आरंभ करना README उदाहरण पर्यावरण फ़ाइल की प्रतिलिपि बनाने और Docker Compose चलाने का सुझाव देता है, जो Redis और NATS के साथ Postgres को ऊपर लाता है। डिफ़ॉल्ट पोर्ट नियंत्रण API के लिए 8091, REST के लिए 8111 और WebSocket के लिए 8131 हैं। REST या WebSocket कॉल करने से पहले नियंत्रण API के माध्यम से एक टेनेंट और API कुंजी बनाई जानी चाहिए। Go टूलिंग का उपयोग करके एक स्थानीय निर्माण पथ भी प्रलेखित है, जिसके लिए समान सहायक सेवाओं को पर्यावरण कॉन्फ़िगरेशन के माध्यम से पहुंच योग्य होना आवश्यक है। नियंत्रण API एक बियरर टोकन या कस्टम हेडर के साथ प्रमाणित होता है; यदि टोकन खाली छोड़ दिया जाता है तो नियंत्रण API खुला होता है, जिसे README केवल स्थानीय विकास के लिए नोट करता है। प्रलेखित एंडपॉइंट स्वास्थ्य जांच, इंस्टेंस पहचान और मेट्रिक्स, टेनेंट निर्माण, सूचीकरण, पुनर्प्राप्ति और विलोपन, प्रति-टेनेंट आंकड़े, कनेक्शन, चैनल, दर सीमाएं, API कुंजी, कतारें और वर्कर्स को कवर करते हैं। परियोजना Apache लाइसेंस 2.0 के तहत लाइसेंस प्राप्त है।