كيفية تصميم الخادم مع العديد من الاتصالات المستمرة

StackOverflow https://stackoverflow.com/questions/1055485

سؤال

أنا تصميم التطبيق حيث العديد من العملاء الاتصال إلى خادم مركزي.هذا الخادم تحافظ على هذه الاتصالات ، إرسال الحفاظ على التشغيل كل نصف ساعة.الخادم لديه جزءا لا يتجزأ HTTP الملقم الذي يوفر واجهة اتصالات العميل (ex. http://server/isClientConnected?id=id).كنت أتساءل ما هي أفضل طريقة للذهاب حول هذا الموضوع.بلدي الحالي تنفيذ جافا و انا خريطة مع ID كمفتاح ، ولكن الموضوع بدأ لكل اتصال ، و أنا لا أعرف إذا كان هذا هو حقا أفضل طريقة للقيام بذلك.أي مؤشرات سيكون موضع تقدير.
شكرا
إسحاق والر

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

المحلول

استخدام جافا.nio حزمة ، كما هو موضح في هذه الصفحة: بناء تدرجية عالية ملقمات مع جافا NIO.أيضا قراءة هذه الصفحة بعناية فائقة: العمارة من تدرجية عالية NIO المستندة إلى الملقم.

شخصيا أنا لا عناء مع NIO الداخلية واستخدام إطار مثل أباتشي مينا أو xSocket.NIO معقدة وسهلة للحصول على الخاطئ في طرق غامضة.إذا كنت تريد أن "مجرد عمل" ثم استخدام الإطار.

نصائح أخرى

ومع موضوع واحد لكل اتصال يمكنك نطاق وعادة ما يصل إلى حوالي 10000 الاتصالات على جهاز واحد. ل32 آلة ويندوز، وربما كنت سوف تصل حد حوالي 1،000 الاتصالات.

لتجنب ذلك، يمكنك إما تغيير تصميم البرنامج الخاص بك، أو يمكنك نطاق من (أفقي). عليك أن الوزن تكلفة التطوير مع تكلفة الأجهزة.

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

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

هل يمكن استخدام جيتي الإستمرار للتعامل مع طلب العميل مع عدد أقل من المواضيع باستخدام السيرفلتس غير متزامن.

اقرأ المزيد عن نمط المفاعل. هناك تنفيذ لأنه في جافا (ويستخدم قنوات بدلا من موضوع العميل). فمن السهل لتنفيذ وفعالة جدا.

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