API Gateway Apache APISIX और Kong चयन तुलना
API7.ai
January 18, 2020
Apache APISIX और Kong दोनों ओपन-सोर्स माइक्रोसर्विस API गेटवे हैं, तो आप उनके बीच तुलना और चयन कैसे करेंगे?
इन दोनों प्रोजेक्ट्स को पूर्ण दस्तावेज़ीकरण और परीक्षणों द्वारा कवर किया गया है, और कई प्रोडक्शन उपयोगकर्ता इनका उपयोग कर रहे हैं, इसलिए स्थिरता और उनके सतत विकास के बारे में चिंता करने की आवश्यकता नहीं है। यह लेख सबसे सीधे और सत्यापन योग्य कार्यों और प्रदर्शन पर ध्यान केंद्रित करेगा। एक अलग दृष्टिकोण से तुलना करने के लिए।
| फीचर्स | Apache APISIX | KONG |
|---|---|---|
| डायनामिक अपस्ट्रीम | हाँ | हाँ |
| डायनामिक राउटर | हाँ | हाँ |
| हेल्थ चेक | हाँ | हाँ |
| डायनामिक SSL | हाँ | हाँ |
| L4 और L7 प्रॉक्सी | हाँ | हाँ |
| Opentracing | हाँ | हाँ |
| कस्टम प्लगइन | हाँ | हाँ |
| REST API | हाँ | हाँ |
| CLI | हाँ | हाँ |
एक और विस्तृत तुलना के लिए।
| फीचर्स | Apache APISIX | Kong |
|---|---|---|
| संबंधित | Apache Software Foundation | Kong Inc. |
| टेक आर्किटेक्चर | Nginx + etcd | Nginx + postgres |
| संचार चैनल | मेल लिस्ट, वीचैट ग्रुप, QQ ग्रुप, GitHub, मीटअप | GitHub, freenode, फोरम |
| सिंगल-कोर CPU, QPS(लिमिट-काउंट और प्रोमेथियस प्लगइन्स सक्षम) | 18000 | 1700 |
| विलंबता | 0.2 ms | 2 ms |
| Dubbo | हाँ | नहीं |
| कॉन्फ़िगरेशन रोलबैक | हाँ | नहीं |
| TTL के साथ रूट | हाँ | नहीं |
| प्लगइन हॉट लोडिंग | हाँ | नहीं |
| कस्टम LB और रूट | हाँ | नहीं |
| REST API <--> gRPC ट्रांसकोडिंग | हाँ | नहीं |
| Tengine | हाँ | नहीं |
| MQTT | हाँ | नहीं |
| कॉन्फ़िगरेशन प्रभावी समय | इवेंट ड्रिवेन, < 1ms | पोलिंग, 5 सेकंड |
| डैशबोर्ड | हाँ | नहीं |
| IdP | हाँ | नहीं |
| कॉन्फ़िगरेशन सेंटर HA | हाँ | नहीं |
| निर्दिष्ट समय विंडो के लिए स्पीड लिमिट | हाँ | नहीं |
| रूटिंग कंडीशन के रूप में किसी भी Nginx वेरिएबल का समर्थन | हाँ | नहीं |
प्रदर्शन
लिमिट-काउंट और प्रोमेथियस प्लगइन्स को सक्षम करने के बाद, Apache APISIX का प्रदर्शन Kong की तुलना में दस गुना अधिक है।
यहां अधिक विस्तृत चरण दिए गए हैं: https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01, रुचि रखने वाले डेवलपर्स चित्र का अनुसरण करके सत्यापन कर सकते हैं।
Apache APISIX क्यों बेहतर है?
यहां, हम कार्यक्षमता और प्रदर्शन में अंतर के पीछे के कारणों पर चर्चा करते हैं:
-
Apache APISIX की रूटिंग जटिलता O(k) है, जो केवल uri की लंबाई से संबंधित है और रूट्स की संख्या से कोई संबंध नहीं है; kong की रूटिंग समय जटिलता O(n) है, जो रूट्स की संख्या के साथ रैखिक रूप से बढ़ती है।
-
Apache APISIX की IP मिलान की समय जटिलता O(1) है, जो बड़ी संख्या में IP निर्णयों के साथ CPU संसाधनों को समाप्त नहीं करेगी।
-
Apache APISIX की रूट मिलान Nginx के सभी वेरिएबल्स को शर्तों के रूप में स्वीकार करती है और कस्टम फ़ंक्शन का समर्थन करती है; अन्य गेटवे में कुछ अंतर्निहित शर्तें होती हैं।
-
Apache APISIX कॉन्फ़िगरेशन सेंटर के रूप में etcd का उपयोग करता है। कोई एकल बिंदु नहीं है, यदि कोई मशीन अनियमित रूप से डाउन हो जाती है, तो गेटवे क्लस्टर अभी भी सामान्य रूप से काम कर सकता है। रिलेशनल डेटाबेस पर आधारित अन्य गेटवे में एकल बिंदु समस्या होगी।
-
Apache APISIX कॉन्फ़िगरेशन 1 मिलीसेकंड के भीतर सभी गेटवे नोड्स तक पहुंच सकता है, etcd watch का उपयोग करके; अन्य गेटवे डेटाबेस को नियमित रूप से पोल करते हैं, और नवीनतम कॉन्फ़िगरेशन प्राप्त करने में आमतौर पर 5 सेकंड लगते हैं।
-
Apache APISIX प्लगइन्स को उच्च दबाव में मिलीसेकंड-स्तरीय विलंबता बनाए रखने के लिए सावधानीपूर्वक ट्यून किया गया है।
-
Apache APISIX का अद्वितीय प्लगइन व्यवस्था और लो-कोड फीचर द्वितीयक विकास की सीमा को बहुत कम कर सकता है।