जब एक अत्याधुनिक डेटा सेवा का निर्माण किया जाता है जैसे FXMacroData, अंतर्निहित एपीआई ढांचा एकल सबसे महत्वपूर्ण इंजीनियरिंग निर्णय है। हमारा मिशन सरल हैः दुनिया भर में व्यापारियों, क्वांट और फिनटेक टीमों को तुरंत और विश्वसनीय रूप से उच्च आवृत्ति वाले मैक्रोइकॉनॉमिक और एफएक्स डेटा की सेवा करना।
इसे प्राप्त करने के लिए, हमें एक पायथन फ्रेमवर्क की आवश्यकता थी जो तेज, मूल रूप से असिंक्रोनस और आधुनिक सर्वरलेस तैनाती के लिए पूरी तरह से उपयुक्त था। Google क्लाउड चलाएँमानक दावेदार थे फ्लास्क और डजंगोहालांकि, हम अंततः चुना फास्टएपीआईयहाँ तकनीकी टूटना है कि क्यों FastAPI एक प्रदर्शन, आधुनिक डेटा एपीआई के निर्माण के लिए स्पष्ट विजेता था बादल के लिए बनाया गया।
एपीआई जनादेशः प्रदर्शन और सर्वरलेस दक्षता
हमारी मूल आवश्यकता उच्च है। समवर्तीमैक्रोइकॉनॉमिक डेटा सेवाएं I/O-बाउंड होती हैं_ एपीआई अपना अधिकांश समय डेटाबेस (फायरस्टोर) या अन्य आंतरिक नेटवर्क सेवाओं के डेटा वापस करने के लिए प्रतीक्षा करने में बिताता है, भारी सीपीयू गणना नहीं करता है_
- फ्लास्क (सिंक्रोनस/WSGI): मानक फ्लास्क समकालिक है. इसका मतलब है कि एक कार्यकर्ता धागा है अवरुद्ध (या जमे हुए) जबकि यह एक I/O ऑपरेशन (जैसे डेटा लेने) के पूरा होने की प्रतीक्षा करता है। यह अक्षमता कंप्यूटेशनल संसाधनों को बर्बाद करती है और एक एकल सर्वर लागत प्रभावी ढंग से संभाल सकते हैं समवर्ती उपयोगकर्ताओं की संख्या को सीमित करती है।
- डजंगो (हैवीवेट मोनोलिथ): जबकि शक्तिशाली, Django एक राय, बैटरी-शामिल ढांचा है। एक शुद्ध डेटा एपीआई बैकएंड के लिए, इसके अंतर्निहित ओआरएम, टेम्पलेटिंग और सत्र प्रबंधन थे अति हत्या. इस बड़े वास्तुकला को केवल डेटा एंडपॉइंट्स की सेवा के लिए तैनात करना अप्रभावी है, खासकर क्लाउड रन जैसे लचीले, प्रति-उपयोग भुगतान वातावरण में।
️ फास्टएपीआईः अनुकूलन क्लाउड स्केलिंग के लिए मूल रूप से असिंक्रोनस
फास्टएपीआई आधुनिक एएसजीआई मानक, बना रही है असिंक्रोनस (async/await) यह गैर-अवरोधक वास्तुकला महत्वपूर्ण प्रदर्शन लाभ हम की जरूरत प्रदान की।
- गैर-ब्लॉकिंग I/O: जब एक FastAPI कार्यकर्ता एक I/O अनुरोध शुरू करता है (उदाहरण के लिए, Firestore से डेटा की प्रतीक्षा), ब्लॉक करने के बजाय, यह तुरंत एक और लंबित अनुरोध को संभालने के लिए स्विच कर सकता है। यह एक एकल प्रक्रिया को कुशलता से प्रबंधित करने की अनुमति देता है एक साथ सैकड़ों अनुरोध न्यूनतम संसाधनों का उपयोग करते हुए।
- सर्वर रहित एकीकरणः हल्के और एएसजीआई-देशी होने का मतलब है कि फास्टएपीआई सर्भरलेस कंटेनर के संक्षिप्त, संसाधन-सीमित जीवनकाल के भीतर पूरी तरह से घूमता है और चलता है। यह पूरी तरह संगत है क्लाउड रन का स्केलिंग मॉडल, जहां हम केवल सटीक गणना समय के लिए भुगतान किया जाता है।
व्यावहारिक अंतरः कोड में I/O प्रतिस्पर्धा
मूल असिंक्रोनस प्रोग्रामिंग का लाभ तुरंत स्पष्ट होता है जब एक साथ कई आंतरिक या बाहरी स्रोतों से डेटा का अनुरोध किया जाता है।
➡️ फ्लास्क (सिनक्रोनस उदाहरण)
निष्पादन चल रहा है क्रमशः. कुल निष्पादन समय है राशि दो देरी (लगभग 2 सेकंड) के कारण दूसरी कॉल को पहले कॉल के पूरा होने का इंतजार करना होगा।
# Flask (Synchronous)
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def sync_example():
time.sleep(1) # Wait for Source A
time.sleep(1) # Wait for Source B
return "Total Time: ~2.0s"
➡️ फास्टएपीआई (असिनक्रोनस उदाहरण)
निष्पादन चल रहा है एक साथ. कुल निष्पादन समय है अधिकतम दो देरी (लगभग 1 सेकंड) के रूप में दोनों I/O संचालन एक ही समय में शुरू कर रहे हैं।
# FastAPI (Asynchronous)
import asyncio
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def async_example():
await asyncio.gather(
asyncio.sleep(1), # Wait for Source A
asyncio.sleep(1) # Wait for Source B
)
return "Total Time: ~1.0s"
डेवलपर उत्पादकता और विश्वसनीयता
कच्चे प्रदर्शन और क्लाउड आर्किटेक्चर से परे, फास्टएपीआई ने हमारी विकास प्रक्रिया में काफी सुधार किया:
- स्वचालित सत्यापनः यह लाभ उठाता है पिडांतिक मॉडल और मानक पायथन प्रकार संकेत स्वचालित डेटा सत्यापन, सीरियलकरण और डेसीरियलिकेशन के लिए। यह नाटकीय रूप से बॉयलरप्लेट कोड को कम करता है और लगभग रनटाइम डेटा प्रकार त्रुटियों को समाप्त करता है।
- स्वतः प्रलेखनः फास्टएपीआई स्वचालित रूप से इंटरैक्टिव, मानकीकृत उत्पन्न करता है ओपनएपीआई प्रलेखन (स्वैगर यूआई)यह हमारे उपयोगकर्ताओं के लिए अमूल्य है क्वांट डेवलपर्स और फिनटेक टीम जो FXMacroData API को एकीकृत करते हैं
संक्षेप में, फास्टएपीआई चुनने से हमें एक उच्च प्रदर्शन, स्टेटलेस एपीआई बनाने की अनुमति मिली जो Google क्लाउड रन के प्रति-उपयोग भुगतान दक्षता से पूरी तरह मेल खाती है। यह तकनीकी रूप से बेहतर है और आधुनिक डेटा माइक्रोसेवा के लिए डजेंगो जैसे ओवर-इंजीनियर फ्रेमवर्क की तुलना में बहुत अधिक लागत प्रभावी है।
यदि आप गति, दक्षता और क्लाउड-नेटिव स्केलिंग पर केंद्रित एक नया डेटा एपीआई बना रहे हैं, तो विकल्प स्पष्ट हैः FastAPI के साथ असिंक्रोनस करें. .
FXMacroData इंजीनियरिंग टीम