playframework अक्का के लिए भाषा और उत्पाद विकल्प क्या हैं?




rabbitmq akka (5)

अभी मैं प्ले फ्रेमवर्क को देख रहा हूं और यह बहुत पसंद है। प्ले में दी जाने वाली सुविधाओं के बीच भारी विज्ञापन में से एक हिस्सा अक्का है

अक्का को बेहतर ढंग से समझने के लिए और इसका इस्तेमाल कैसे करना है, क्या आप मुझे बता सकते हैं कि अन्य भाषाओं या उत्पादों में क्या विकल्प हैं?

कैसे RabbitMQ इसे तुलना करता है? क्या बहुत अधिक ओवरलैप है? क्या इन्हें एक साथ व्यावहारिक उपयोग करना है? क्या उपयोग मामलों में?


शुरू करने के लिए सबसे अच्छी जगह एक महान अकाका आधिकारिक दस्तावेज है । मुझे लगता है कि अक्का को निकटतम उत्पाद / ढांचा भाषा को नष्ट कर रहा है। मुझे लगता है (मैंने प्ले फ्रेमवर्क का इस्तेमाल नहीं किया है) अक्का को धूमकेतु और अन्य अतुल्यकालिक प्रसंस्करण के कार्यान्वयन के लिए उपयोग किया जाता है।

खरगोशमिक विचारों में कुछ समान हैं (संदेशों को भेजने के लिए बुनियादी ढांचे), ध्यान दें कि खरगोश एमक्यू को भी एर्लांग में लिखा गया है, लेकिन उनके पास थोड़ा-भिन्न प्रयोग-मामले हैं। मैं कहूंगा कि जब खरगोश एमक्यू संदेश पारित करने पर ध्यान केंद्रित करता है, तो अक्का अभिनेताओं (संदेश रिसीवर और प्रेषकों) के बारे में अधिक है।


अक्का समवर्ती और वितरित प्रणालियों के निर्माण के लिए टूलकिट और रनटाइम है। इसे हासिल करने के लिए, अक्का अभिनेता मॉडल का उपयोग करें। यदि आप अका के लिए एक विकल्प तलाश रहे हैं, तो मुझे लगता है कि आप अक्का की तरह एक पूर्ण समाधान नहीं पा सकते हैं, क्योंकि अक्का में कई विशेषताएं हैं जो आपको मजबूत समवर्ती और वितरित प्रणाली विकसित करने में सक्षम बनाती हैं:

  • अक्का अभिनेता
  • अभिनेता रूटिंग, पर्यवेक्षण और निगरानी
  • अतुल्यकालिक और गैर-अवरुद्ध संदेश
  • अक्का क्लस्टर (क्लस्टर प्रबंधन के लिए)
  • अक्का दृढ़ता (घटना सोर्सिंग, दृढ़ता वाले अभिनेता और कम-से-एक बार वितरण संदेश को लागू करने के लिए)
  • अक्का आई / ओ (टीसीपी और यूडीपी संचार के लिए)
  • अक्का HTTP (HTTP संचार के लिए ग्राहक या सर्वर के रूप में)
  • अक्का स्ट्रीम (स्ट्रीम प्रोसेसिंग के लिए)
  • ...

लेकिन मैं सुझाव देता हूं कि इरलांग / ओटीपी और कसर


मैं रबाईटीएमयूपी + स्प्रिंग एएमक्यूपी + गवा का इवेंटब्यूज़ इस्तेमाल करता हूं, जो प्राप्त संदेशों से मेल खाते पैटर्न के लिए गवा के इवेंटबस का उपयोग करते हुए अभिनेता-जैसे दूतों को स्वचालित रूप से पंजीकृत करता है।

स्प्रिंग एएमक्यूपी और अक्का की समानता अलौकिक है। स्प्रिंग एएमक्यूपी की सरल मेसेज लिस्टनर कॉन्टैनेर + संदेश लिस्टनर एक अभिनेता के बराबर है

हालांकि, सभी इरादों और उद्देश्यों के लिए, अब्का की तुलना में रबीटएमक्यू अधिक शक्तिशाली है क्योंकि इसमें कई भाषाओं में कई क्लाइंट लागूकरण हैं, दृढ़ता (टिकाऊ कतार), टोपोलॉजिकल रूटिंग और प्लगेबल क्यूओएस एल्गोरिदम प्रदान करता है

यह कहा जा रहा है कि अक्का और अधिक सुविधाजनक है और सिद्धांत में अकाका ऊपर के सभी कार्य कर सकता है और कुछ लोगों ने एक्सटेंशन लिखे हैं लेकिन सबसे ज्यादा सिर्फ अक्का का उपयोग करें और फिर अक्की को रब्बेट एमक्यू पर संदेश वितरित करें। इसके अलावा स्प्रिंग एएमक्यूपी सिंपल मेसेज लिस्टनर कंटेनर बहुत ही भारी है और इसका स्पष्ट नहीं है कि अगर आप उनमें से कुछ मिलियन बनाते हैं तो क्या होगा।

भविष्य में मैं भविष्य के परियोजनाओं के लिए स्प्रिंग एएमक्यूपी के बजाय अक्का का प्रयोग कर RabbbitMQ पर विचार करूँगा।


आप वर्ट्क्स का उपयोग भी कर सकते हैं, जो कि एक रिएक्टिव मंच है http://vertx.io/

वहां जहां आप अभिनेता प्रतिमान के समान वर्लिक ( http://vertx.io/docs/vertx-core/java/#_verticles ) पर विचार कर सकते हैं। और इवेंटबस जैसे अक्का के डाटाबेस ( http://vertx.io/docs/vertx-core/java/#event_bus )


सबसे अच्छी सलाह जो मैं पेशकश कर सकता हूं, जैसा कि मैंने भी उसी विचार प्रक्रिया के माध्यम से चलाया जब Play 2.0 ने टाइपएफ़ से जुड़ लिया और अक्का का उपयोग करना शुरू किया, "अभिनेता मॉडल" की खोज करना है।

विकिपीडिया एक महान संसाधन है - http://en.wikipedia.org/wiki/Actor_model । इसमें प्रोग्रामिंग भाषाओं की एक सूची है जो अभिनेता मॉडल का समर्थन कर सकती हैं, और इसमें फ्रेमवर्क की एक सूची भी है (जिसमें अक्का शामिल है) जो अभिनेता मॉडल पर आधारित हैं

बस रखो, अभिनेता मॉडल एक समवर्ती गणना मॉडल में अभिनेताओं की अवधारणा के आसपास आधारित है। एक्टर्स का मतलब जरूरी नहीं कि संदेश भेजने का मतलब है, लेकिन सबसे सामान्य उपयोग के मामलों में एक्टर्स होंगे जो संदेश भेजते हैं (जहां पर खरगोश एमक्यू के साथ समानताएं आती हैं)।