2012-03-16 9 views
47

ट्र्रिफ्ट का प्राथमिक लक्ष्य प्रोग्रामिंग भाषाओं में कुशल और विश्वसनीय संचार सक्षम करना है। लेकिन मुझे लगता है कि HTTP-RPC भी ऐसा कर सकता है, वेब डेवलपर लगभग हर कोई जानता है कि http पर कैसे काम करना है और थ्रिफ्ट,क्यों रोमांचक, HTTP आरपीसी (JSON + gzip)

शायद थ्रिफ्ट-आरपीसी तेज है, तो कौन तेज़ हो सकता है मुझे उनके बीच perfermance में अंतर बताओ?

उत्तर

88

गति के अलावा अन्य कुछ कारण हैं:

  1. बचत क्लाइंट और सर्वर कोड पूरी तरह से, डेटा संरचनाओं आप गुजर रहे हैं सहित, ताकि आप संचालकों लिख के अलावा और कुछ के साथ सौदा करने की जरूरत नहीं है उत्पन्न करता है और ग्राहक का आह्वान किया। और पैरामीटर और रिटर्न समेत सबकुछ स्वचालित रूप से मान्य और पार्स किया जाता है। इसलिए आपको अपने डेटा पर मुफ्त में सैनिटी चेक मिल रहे हैं।

  2. बचत HTTP की तुलना में अधिक कॉम्पैक्ट है, और आसानी से एन्क्रिप्शन, संपीड़न, गैर अवरुद्ध आईओ, आदि

  3. बचत बहुत आसानी से अगर आप HTTP और JSON का उपयोग करने के लिए स्थापित किया जा सकता है जैसी बातों का समर्थन करने के लिए बढ़ाया जा सकता यह चाहते हैं (कहें कि आपका ग्राहक इंटरनेट पर कहीं और है और फ़ायरवॉल पास करने की आवश्यकता है)

  4. थ्रिफ्ट लगातार कनेक्शन का समर्थन करता है और निरंतर टीसीपी और HTTP हैंडशेक से बचाता है जो HTTP घुमाता है।

व्यक्तिगत रूप से, मैं आंतरिक लैन आरपीसी और HTTP के लिए बचत का उपयोग जब मैं बाहर से कनेक्शन की जरूरत है।

मुझे उम्मीद है कि यह सब आपको समझ में आता है।

http://www.slideshare.net/dvirsky/introduction-to-thrift

यह बचत करने के लिए कुछ अन्य विकल्पों के लिंक हों: आप एक प्रस्तुति मैं यहाँ बचत के बारे में दे दी है पढ़ सकते हैं। https://github.com/eishay/jvm-serializers/wiki/

बनाम JSON बचत के लिए विशेष रूप से बोलते हुए:

+0

ग्रेट उत्तर डीवीर! अगर मैं बहाव करता हूं और ज्यादातर मामलों में इसे पसंद करता हूं तो मैं भी बहुत शौकीन हूं। सबसे बड़ी कठिनाई थ्रिफ्ट कंपाइलर को स्थापित कर रही है, लेकिन एक बार किया गया और उचित मेवेन प्लगइन के साथ संयुक्त हो गया, तो आप जा सकते हैं। आवश्यक कॉम्पैक्ट सर्वर/क्लाइंट कोड अविश्वसनीय रूप से सेक्सी है! –

+0

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

+1

अधिकांश HTTP क्लाइंट भी रख-रखाव का समर्थन करते हैं :) – Xorlev

5

यहां विभिन्न serializers के प्रदर्शन की तुलना पर अच्छा स्रोत है बचत प्रदर्शन सबसे अच्छा JSON पुस्तकालयों (जैक्सन, protostuff) के बराबर है, और धारावाहिक आकार कुछ हद तक कम है।

आईएमओ, सबसे मजबूत बहाव फायदे सुविधाजनक इंटरऑपरेबल आरपीसी आमंत्रण और बाइनरी डेटा के सुविधाजनक हैंडलिंग हैं।

संबंधित मुद्दे