سؤال

أخطط لكتابة خادم RPC في Java. يحتاج الخادم إلى قبول RPCs الوارد - ربما عبر HTTP - والإجابة عليها. الأشياء الأساسية إلى حد ما. دعم "الاقتراع الطويل" أو "شنقا" RPCS غير ضروري، لذلك يجب أن يكون نموذج مؤشر الترابط لكل طلب كاف تماما.

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

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

لاحظ أنه على الرغم من أنني قد أستخدم HTTP ل RPCS، إلا أن هذا بالتأكيد ليس تطبيق ويب - وعلى هذا النحو، فإن إطار الويب غير مناسب.

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

المحلول

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

PS: ينصح بشدة سلسلة الإصدار 2.0، على الرغم من أنه لا يزال في شكل "علامة فارقة"، فقد ثبت استقرارا للغاية ويقترب من الإفراج النهائي.

نصائح أخرى

لديك خيار متعدد:

  • لفة الحل الخاص بك مع SDK الموجودة برمجة المقبس.
  • Java RMI، إطار استدعاء الأسلوب البعيد.
  • ترتيب جافا كوربا، لم تعد تعتبر الحالية.
  • أطر خدمة الويب Java معقدة للغاية. انظر إلى Apache CXF ومنتجات J2EE المختلفة.

ثم لديك أنظمة مختلفة تعمل فوق نقل HTTP مثل JSON / XML-RPC حيث تحتاج إلى خادم ويب. على الرغم من أنك تحكمها.

يمكنك التفكير في استخدام بعض الشيء بسيط مثل جيتي Internals of Jetty مستقرة للغاية ويمكن أن تتعامل مع عدد السخيف للغاية من الاتصالات. إذا قمت بتطبيق واجهة معالج محددة Jetty، فيمكنك أيضا القيام بها جميع مكتبات دعم Servlet و JSP مما يجعله خادم تطبيقات صغير للغاية.

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