2013-01-11 21 views
6

पर जेसन-आधारित एपीआई अधिकांश आधुनिक एपीआई जेसन का उपयोग एचटीपी पर अनुरोध/प्रतिक्रिया संदेश के साथ किया जाता है। चूंकि ज़ीरोमक टीसीपी पर एक परिवहन है, क्या जेसन-आधारित एपीआई जेरोमक पर बनाया जा सकता है? यदि हां, तो फायदे क्या होंगे? उपयोग i) डेवलपर्स एक या अधिक वेबसर्वर के साथ संचार करने वाले ग्राहकों/उपकरणों के लिए ऐप्स लिख रहे हैं और ii) वेबसर्वर वेबसर्वर के साथ संचार कर रहे हैं।जेसनोम

उत्तर

13

हां, जेसन-आधारित एपीआई HTTP के बजाय ज़ीरोएमक्यू के शीर्ष पर बनाया जा सकता है। इसके लिए आरईक्यू/आरईपी सॉकेट की आवश्यकता होगी। हालांकि, यह एक अच्छा विकल्प प्रतीत नहीं होता है।

JSON + HTTP दृष्टिकोण का मुख्य लाभ पोर्टेबिलिटी है। JSON + HTTP को किसी भी प्रोग्रामिंग वातावरण द्वारा बॉक्स से बाहर समर्थित किया गया है, ज़ीरोएमक्यू इतनी व्यापक रूप से समर्थित नहीं है (उदाहरण के लिए ब्राउज़र जेएस में कोई समर्थन नहीं)। इसके अलावा, ज़ीरोएमक्यू सेटअप में इतना दर्द रहित नहीं है, इसलिए सेवा उपभोक्ता शायद उस विकल्प से खुश नहीं होंगे।

दूसरी ओर, ज़ीरोएमक्यू का मुख्य लाभ प्रदर्शन है: यदि आपको प्रति सेकंड डेटा के कई मेगाबाइट (या शायद गीगाबाइट) को धक्का देना बहुत अच्छा है तो यह बहुत अच्छा है। JSON एन्कोडिंग/डिकोडिंग वास्तव में तेज़ है, लेकिन आकार इस तरह के कार्यों के लिए भी महत्वपूर्ण है। कोई भी बाइनरी सीरियलाइजेशन ढांचा एक बेहतर विकल्प प्रतीत होता है, बहुत सारे हैं: प्रोटोबफ, थ्रिफ्ट, बीएसओएन, क्रियो, एवरो इत्यादि

तो, मैं वेब सेवाओं के एपीआई के लिए JSON + HTTP का उपयोग करना जारी रखूंगा: आधुनिक HTTP सर्वर उपकरण उत्कृष्ट प्रदर्शन और स्केलेबिलिटी प्रदान करते हैं। और ZeroMQ एक समेकित वातावरण के भीतर संचार के लिए एक महान विकल्प है क्योंकि इसकी समवर्ती सुविधाओं और अच्छी तरह से परिभाषित उपयोग पैटर्न हैं।

+0

पोर्टेबिलिटी मुद्दा वास्तव में उत्तर था जिसके बाद मैं था। हमारे जेसन + http एपीआई के साथ रहेंगे। बहुत बढ़िया जवाब। बहुत बहुत धन्यवाद। –

+0

@ डीबीवी आपका स्वागत है। मैं "+1" की सराहना करता हूं :) – Wildfire

+3

कुछ मामलों में एक संकर दृष्टिकोण उपयोगी है - HTTP + JSON एक सार्वजनिक एपीआई के रूप में, और कार्यों को अपने काम नोड्स में वितरित करने के लिए * सटीक उसी * JSON संदेश प्रणाली का उपयोग ज़ीरोमक के माध्यम से करें। – minrk