الاقتراع طويلة مقابل تدفق حوالي 1 التحديث / ثانية

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

سؤال

ووتدفق خيارا قابلا للتطبيق؟ سوف يكون هناك اختلاف الأداء على نهاية الملقم اعتمادا على الذي اخترت؟ هو أفضل واحد من الآخر لهذه الحالة؟

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

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

المحلول

هل تريد أن تكون العملية client- أو الخادم يحركها؟ وبعبارة أخرى، هل تريد دفع بيانات جديدة إلى العملاء بأسرع ما كان متوفرا، أم تفضل أن العملاء طلب بيانات جديدة كلما يرونه مناسبا، على الرغم من أن قد لا يكون مرة واحدة / ثانية؟ ما هو يكيليهود أن العميل سوف تكون قادرة على عصا حول لانتظار الجواب؟ على الرغم من أن تتوقع الأحداث تحدث مرة واحدة / ثانية، وكم من الوقت يستغرق ما بين طلب من عميل وعودة من خادم؟ لو كان أطول من الثانية، كنت أتوقع منك أن تضغط من أجل دفع الأحداث إلى العملاء، على الرغم من أن العكس، أتوقع الاقتراع أن تكون بخير. إذا كانت الاستجابة وقتا أطول من هذه الفترة، ثم كنت يتدفقون أساسا على أي حال، لأن هناك حدثا جديدا جاهزا بحلول الوقت يتلقى العميل آخر واحد، وبالتالي فإن العميل يمكن الاستقصاء أساسا باستمرار ودائما يتلقى الأحداث - في هذه الحالة، وتدفق أن تكون البيانات في الواقع أكثر خفيفة الوزن، منذ كنت إزالة الزائد اتصال / التفاوض من هذه العملية.

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

وUPDATE: محادثات هذا الرجل عن بالتجارة الموازنة بين الاقتراع الطويل والجري، وانه يبدو ان اقول ان مع HTTP / 1.1، وعملية الاتصال إعادة التفاوض تافهة، لذلك هذا ليس أكبر قدر من قضية.

نصائح أخرى

لا يهم حقا. الحمل اتصال إعادة التفاوض ضئيلة جدا مع HTTP1.1، فإنك لن تلاحظ أي فروقات كبيرة الأداء بطريقة أو بأخرى.

وفوائد الاقتراع طويلة هي التوافق والموثوقية - أي مشاكل مع الوكلاء والموانئ والكشف عن قطع، الخ

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

وشخصيا، أجد الخادم المذنب مصممة تصميما جيدا ليكون أفضل حل لأعداد كبيرة من التحديثات و / أو خادم دفع.

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

.

ولقد تم تصميم عليه Streamhub GWT المذنب محول بالضبط لهذا السيناريو من تدفق أسعار الأسهم. المثال هنا: GWT الجري المالية ونقلت . فإنه يقوم بتحديث أسعار أسهم العديد من الأسهم في وقت واحد. أعتقد أن التنفيذ تحت المذنب الذي تدفق أساسا على HTTP.

وتحرير: ويستخدم تقنية مختلفة عن كل متصفح. على حد تعبير الموقع:

<اقتباس فقرة>   

وهناك عدة مختلفة الكامنة   التقنيات المستخدمة لتنفيذ المذنب   بما في ذلك المخفية الإطار من،   الاقتراع مدعوم / سيناريو طويل،   وجزءا لا يتجزأ من الإضافات مثل فلاش.   إدخال HTML 5 مآخذ الويب   في لمتصفحات المستقبل سيوفر   آلية بديلة لHTTP   تدفق. يستخدم عليه Streamhub "أفضل مناسبا"   نهج الاستفادة من معظم performant لل   وتقنية موثوقة لكل   المتصفح.

والجري سيكون أسرع لأن البيانات فقط يعبر سلك اتجاه واحد. مع الاقتراع، الكمون على الأقل مرتين.

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

وكنت اذهب لالاقتراع فقط للقوة.

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

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