java امثلة بالعربي - حالة الاستخدام الجيد لعكا




6 Answers

لقد استخدمتها حتى الآن في مشروعين حقيقيين بنجاح كبير. كلاهما في حقل معلومات حركة المرور في الوقت الحقيقي (حركة المرور كما هو الحال في السيارات على الطرق السريعة) ، موزعة على عدة نقاط ، ودمج الرسائل بين عدة أطراف ، أنظمة خلفية موثوقة. أنا لست مطلق الحرية في إعطاء تفاصيل حول العملاء حتى الآن ، عندما أحصل على موافق ، فربما يمكن إضافتها كمرجع.

لقد اجتازت Akka بالفعل هذه المشاريع ، على الرغم من أننا بدأنا عندما كانت في الإصدار 0.7. (نحن نستخدم scala بالمناسبة)

واحدة من المزايا الكبيرة هي السهولة التي يمكنك من خلالها إنشاء نظام من الممثلين والرسائل مع عدم وجود الغليان تقريبًا ، فهو يتسلسل بشكل جيد للغاية بدون جميع تعقيدات التخييط المدلفن يدويًا وتحصل على رسالة غير متزامنة تنتقل بين الكائنات شبه المجانية.

إنه جيد جدًا في نمذجة أي نوع من معالجة الرسائل غير المتزامنة. أفضل كتابة أي نوع من أنواع خدمات الويب (web) في هذا النمط من أي نمط آخر. (هل سبق لك أن حاولت كتابة خدمة ويب غير متزامنة (جانب الخادم) مع JAX-WS؟ هذا كثير من السباكة). لذلك أود أن أقول أي نظام لا يريد تعليقه على أحد مكوناته لأن كل شيء يسمى ضمنيًا باستخدام أساليب متزامنة ، وأن أحد المكونات يقوم بقفل شيء ما. إنه مستقر للغاية ويعمل حل let-it-crash + supervisor للفشل بشكل جيد. كل شيء سهل الإعداد بشكل برمجي وليس من الصعب اختبار الوحدة.

ثم هناك وحدات إضافية ممتازة. يتم توصيل وحدة Camel بالفعل بشكل جيد في Akka وتمكن هذا التطوير السهل للخدمات غير المتزامنة مع نقاط النهاية القابلة للتكوين.

أنا سعيد جدًا بالإطار ، وأصبح معيارًا خاطئًا للأنظمة المتصلة التي نبنيها.

أمثلة عن

لقد سمعت الكثير من الهذيان حول إطار Akka (منصة خدمة جافا / سكالا) ، ولكن حتى الآن لم نر العديد من الأمثلة الفعلية لحالات الاستخدام التي سيكون من الجيد لها. لذا سأكون مهتمًا بالاستماع إلى الأشياء التي استخدمها المطورون بنجاح.

قيود واحدة فقط: يرجى عدم إدراج حالة كتابة خادم الدردشة. (لماذا؟ لأن هذا قد أفرط كمثال لكثير من الأشياء المماثلة)




مثال على كيفية استخدامنا لها سيكون على طابور الأولوية في معاملات بطاقة الخصم / بطاقة الائتمان. لدينا الملايين من هذه الجهود وجهود العمل يعتمد على نوع سلسلة الإدخال. إذا كانت المعاملة من النوع CHECK فليس لدينا سوى القليل من المعالجة ولكن إذا كانت نقطة بيع ، فهناك الكثير للقيام به مثل الدمج مع البيانات الوصفية (الفئة ، التسمية ، العلامات ، الخ) وتقديم الخدمات (رسائل البريد الإلكتروني / رسائل التنبيه القصيرة ، كشف الاحتيال ، وانخفاض رصيد الأموال ، وما إلى ذلك). استناداً إلى نوع الإدخال ، نقوم بتكوين فئات من السمات المختلفة (تسمى mixins) الضرورية للتعامل مع الوظيفة ومن ثم تنفيذ العمل. تأتي كل هذه الوظائف في نفس قائمة الانتظار في وضع الوقت الفعلي من المؤسسات المالية المختلفة. بمجرد أن يتم تنظيف البيانات ، يتم إرسالها إلى مخازن بيانات مختلفة للاستمرار ، أو التحليلات ، أو دفعها إلى توصيل مقبس ، أو لرفع ممثل المذنب. تعمل الجهات الفاعلة العاملة باستمرار على موازنة الحمل الذاتي حتى نتمكن من معالجة البيانات في أسرع وقت ممكن. ويمكننا أيضًا التقاط خدمات إضافية ، ونماذج مثابرة ، stm نقاط القرار الهامة.

تجعل رسالة نمط Erlang OTP المارة على JVM نظامًا رائعًا لتطوير أنظمة الوقت الفعلي على أكتاف المكتبات وخوادم التطبيقات الموجودة.

عكا يسمح لك أن تمرر رسالة كما لو كنت في esb التقليدية ولكن مع السرعة! كما يمنحك أدوات في الإطار لإدارة مقدار كبير من تجمعات الممثل والعقد البعيدة والتسامح مع الخطأ التي تحتاجها للحل الخاص بك.




نحن نستخدم عكا في مشروع Telco واسع النطاق (للأسف لا أستطيع الكشف عن الكثير من التفاصيل). يتم نشر الجهات الفاعلة عكا والوصول عن بعد من خلال تطبيق ويب. وبهذه الطريقة ، لدينا نموذج RPC مبسط يستند إلى Google protobuffer ونحقق توازنا باستخدام عكا Futures. حتى الآن ، عمل هذا النموذج ببراعة. ملاحظة واحدة: نحن نستخدم Java API.




نحن نستخدم عكا في العديد من المشاريع في العمل ، والأكثر إثارة للاهتمام هو إصلاح السيارة. في المقام الأول في المملكة المتحدة ولكن الآن التوسع إلى الولايات المتحدة وآسيا وأستراليا وأوروبا. نحن نستخدم الجهات الفاعلة لضمان أن يتم توفير معلومات إصلاح التصادم في الوقت الحقيقي لتمكين إصلاح المركبات بأمان وفعال من حيث التكلفة.

السؤال مع عكا هو حقا أكثر "ما لا يمكنك فعله مع عكا". إن قدرتها على الاندماج مع الأطر القوية ، وتجريدها القوي ، وجميع جوانب التسامح مع الخطأ ، تجعل منها مجموعة أدوات شاملة للغاية.




نحن نستخدم akka مع ملحق الإبل الخاص بنا لتوزيع تحليلنا ومعالجة twimpact.com الخاصة twimpact.com على twimpact.com . يجب علينا معالجة ما بين 50 و 1000 رسالة في الثانية. بالإضافة إلى معالجة متعددة العقد مع الجمل ، يتم استخدامها أيضًا لتوزيع العمل على معالج واحد لعدة عمال للحصول على أقصى أداء. يعمل بشكل جيد ، لكنه يتطلب بعض الفهم لكيفية التعامل مع الازدحام.




نحن نستخدم عكا في أنظمة الحوار المنطوقة ( primetalk ). داخليا وخارجيا. من أجل تشغيل الكثير من قنوات الاتصال الهاتفي في وقت واحد على عقدة كتلة واحدة فمن الواضح أن هناك حاجة إلى بعض إطار multithreading. عكا يعمل مثالية. لدينا كابوس سابق مع التزامن جافا. ومع عكا ، إنها مجرد مثل البديل - إنها ببساطة تعمل. قوية وموثوقة. 24 * 7 ، بدون توقف.

داخل قناة لدينا تيار في الوقت الحقيقي من الأحداث التي تتم معالجتها بالتوازي. على وجه الخصوص: - التعرف على الكلام التلقائي المطول - يتم مع أحد الممثلين ؛ - منتج خرج صوت يخلط بعض المصادر السمعية (بما في ذلك الكلام المركب) ؛ - تحويل النص إلى كلام هو مجموعة منفصلة من الجهات الفاعلة المشتركة بين القنوات ؛ - معالجة الدلالي والمعرفة.

لجعل الترابط من معالجة الإشارات المعقدة نستخدم SynapseGrid . لديه فائدة من التحقق من وقت التجميع من DataFlow في أنظمة الممثل المعقدة.




Related