سؤال

أنا أكتب تطبيق بحث موزع مع Akka باستخدام طبولوجيا سيد بسيطة وعملية متعددة، بهدف النشر على مجموعة داخلية من العقد أو داخل سحابة الشركات. (عندما يصبح Akka 2.1 متاحا، سأبحث في استخدام دعم التجميع)

سؤالي: ما هي أبسط / أفضل طريقة لنشر التعليمات البرمجية (في شكل مجلد يحتوي على mickkernel Akka) على كل عقدة، ابدأ تشغيله، واتركه يفعل ذلك، ثم تمزيقه وتكرر حسب الضرورة؟

  • دليل microkernel والتنفيذ مطابق لكل عقدة عامل، وفقط عدد قليل من ميغابايت. يحتوي التكوين على IP من سيد سيتصل به.
  • أنا أعتزم بدء تشغيل السيد يدويا.
  • المرونة ليست مصدر قلق لأن هذا ليس تطبيقا حاسما تجاريا، بل خاص مشكلة البحث.
  • لا يتم تخزين البيانات الهامة محليا للعمال.
  • بعد اكتمال التطبيق، قد أرغب في إعادة نشر تطبيق مختلف دون تمزق العقد (E.G. بعد أن قمت بتنقيح CodeBase).

تحديث: اكتشف أن عقد كوندور لدعم الوظائف التي تعمل في وضع الجهاز بالكامل. يجب أن يدعم ذلك تشغيل Microkernel كعمل، وتحتاج فقط إلى التأكد من الخروج من العمال بشكل صحيح عند الانتهاء.

التحديث 2: قد يكون أحياب الحيوان المذكور ما هو مناسب تماما لهذا. سوف نقدر المدخلات من أي شخص لديه خبرة.

هل كانت مفيدة؟

المحلول

هنا بعض الأفكار. ليس لدي خبرة مع Akka، لكنني أعرف عن الحوسبة والانتشار الشبكة.

  1. استخدم أداة شبكة موجودة، مثل http://www.gridgain.com لديك نسخة GPL). كما سمعت من الناس بناء شبكة مع http://www.hazelcast.com/

  2. استخدم سحابة في مربع، مثل AirFrame، http://www.pistoncloud.com/press-releases/piston-cloud-launches-free-openstack-distribution/ . أنا متأكد من أنه يجب أن يكون هناك آخرون.

  3. يأتي airframe مع مسبك السحابة، وأعتقد، لكنك يمكن أن ننظر في استخدامه مباشرة: https:// Micro.Cloudfoundry.com/ ولكن لست متأكدا من كيفية ارتفاع هذا الإصدار.

  4. لفة النظام الخاص بك، والتثبيت في صورة VM واحدة، ثم استنساخها على العقد الأخرى الخاصة بك.

  5. عندما يتعلق الأمر بفة خاصة بك، يمكنك القيام بذلك كما يلي، مماثلة جدا لشيء ما قمت بتطويره ويعمل جيدا.

    • قم ببناء طلبك باستخدام Maven، باستخدام أي من أي وقت مضى المكتبات التي تريدها.

    • دفع الثنائيات المبنية في Sonatype Nexus.

    • قم بإنشاء قاذفة مخصصة، والتي تعطى أن يقوم Maven بتنسيق وحدة نمطية يمكن تشغيله. يقوم Laucher الخاص بي أولا بفحص Repo Maven محلي للجراعات، إذا لم تكن موجودة، فستفودها من Nexus. ثم يبني Classpath من جميع الجرار في شجرة الاعتماد المتعتقدين. ثم يقوم بإنشاء كأس جديد مع ClassPath الجديد، وقاذف الطبقة الرئيسية عبر الفصل الدراسي.

    • اكتب خدمة، باستخدام Wrappe java-service-service أو ما شابه ذلك، يقوم ذلك عند بدء التشغيل بفحص إصدار التعليمات البرمجية المطلوب تشغيله من خلال قراءة بعض ينسق Maven واسم الفصل الرئيسي من التكوين. قد يكون التكوين ملف على محرك أقراص الشبكة أو عنوان URL الذي تم تكوينه مسبقا، أو حتى zookeeper. ثم يمر هذا إلى Launcher الذي يقوم بتنزيل ويدير التعليمات البرمجية.

    • قم بتثبيت هذه الخدمة على العديد من الأجهزة، إما يدويا، أو عبر استنساخ VM.

    • الربح!

    أنا لا أذكر Akka على وجه التحديد، حيث يبدو أن معظم مشكلتك هي كيفية الحصول على رمز يعمل على العقد الملتجمية.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top