الحد أنظمة المتزامنة عالية السياسة

ملخص

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

هناك في تطوير نظم المتزامنة للغاية تستخدم لحماية ثلاث منظومات الأسلحة: ذاكرة التخزين المؤقت، تخفيض والحد الحالي.

مخبأ

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

خفض ترتيب

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

الحد

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

الحد خوارزمية

دلو رمزي (رمز دلو)، دلو مثقوب (دلو مثقوب)، وخوارزمية العداد حدا خوارزمية ثلاثة الحالي الأكثر شيوعا.

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

مثال 1 باستخدام عداد الحد الحالي:

الطبقة العامة CountRateLimiterDemo { خاص عدد ثابت AtomicInteger = AtomicInteger جديد (0)؛ ساكنة العام إكسيك باطل () { إذا (count.get () > = 5) { System.out.println ( "طلب الكثير من المستخدمين، يرجى المحاولة مرة أخرى في وقت لاحق!" + System.currentTimeMillis () / 1000)؛ } {شيء آخر count.incrementAndGet ()؛ محاولة { // تجهيز المنطق الأساسي TimeUnit.SECONDS.sleep (1)؛ System.out.println ( "-" + System.currentTimeMillis () / 1000)؛ } صيد (InterruptedException ه) { e.printStackTrace ()؛ } وأخيرا { count.decrementAndGet ()؛ } } } }

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

السلبيات: استخدام بسيطة وAomicInteger النفط تتجاوز عتبة رفض الطلب، قد يكون مجرد الحجم الكبير لحظة من الطلبات، سيتم رفض الطلب.

مثال 2 باستخدام مقيد تدفق العداد

الطبقة العامة CountRateLimiterDemo { ساكنة الخاص سيمافور semphore = جديد سيمافور (50)؛ ساكنة العام إكسيك باطل () { إذا (semphore.getQueueLength () > 100) { System.out.println ( "عدد من المهام حاليا في انتظار طابور أكبر من 100، يرجى المحاولة مرة أخرى في وقت لاحق ...")؛ } محاولة { semphore.acquire ()؛ // تجهيز المنطق الأساسي TimeUnit.SECONDS.sleep (1)؛ System.out.println ( "-" + System.currentTimeMillis () / 1000)؛ } صيد (InterruptedException ه) { e.printStackTrace ()؛ } وأخيرا { semphore.release ()؛ } } }

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

الميزة النسبية الذرية: إذا كان يمكن إجراء التزامن عالية عابرة في طلب طابور عرقلة في قائمة الانتظار، بدلا من رفض الطلب فورا، وذلك لتحقيق تدفق قطة.

استخدام RateLimiter الجوافة الحد سبيل المثال 3

في الأدوات مفتوحة المصدر يقوم الدرجة الجوافة RateLimiter على تحقيق خوارزمية دلو رمزية يمكن تنفيذها ببساطة الحد من العمل، ويولد معدل رمزية وتعديلها وفقا للنظام الفعلي. RateLimiter بسيطة خوارزمية دلو رمزية للقيام ببعض التحسين على المشروع، والتنفيذ هو SmoothBursty. لاحظ أنه تنفيذ آخر SmoothWarmingUp RateLimiter، فإنه ليس دلو رمزية، ولكن خوارزمية دلو. ربما من أجل البساطة، يتم تمكين RateLimiter نافذة الوقت و1S فقط، إذا أردت الحصول على الوقت الحد من وحدات أخرى، فقط آخر إنشاء عجلة القيادة.

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

RateLimiter rateLimiter = RateLimiter.create (2)؛

System.out.println (rateLimiter.acquire (5))؛

System.out.println (rateLimiter.acquire (2))؛

System.out.println (rateLimiter.acquire (1))؛

تصدير

0.0

2.496889

0.992149

كما يمكن أن يرى، يمكن أن تولد فقط الرموز الثانية في دلو 2، يمكننا إزالة الخمسة الأولى، ولكن الرمز المميز الثاني عندما تؤخذ مرة أخرى، إلى الانتظار 2.5S، أي الرمز المميز الأول بعد أخذ، ضرورة 2.5S الانتظار لجلب الرمز المميز. وبالمثل، عندما أخذ عربون الثالث، تحتاج 1S إلى الانتظار للمرة الثانية. وهذا هو، مع معدل قد يتجاوز معدل الرموز المنتجة، ولكن لالتقاط تكرارا المقبل، تحتاج لمنع الانتظار.

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

راشح دلو خوارزمية

أي راشح دلو خوارزمية راشح دلو غير خوارزمية الحد شائعة جدا، ويمكن استخدامها لتنفيذ تشكيل حركة المرور (تشكيل حركة المرور) والتحكم في التدفق (المرور الشرطة). نشرت لي رسما تخطيطيا لمساعدتك على فهم:

المفهوم الرئيسي من الخوارزمية دلو تتسرب منها المياه على النحو التالي:

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

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

ويتم تنفيذ راشح دلو خوارزمية أفضل في نظام قائم بذاته يمكن تنفيذها باستخدام طابور، في بيئة مراسلة الوسيطة توزيع أو رديس هي برامج اختيارية.

رمز دلو خوارزمية

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

رمزية خوارزمية دلو هي الرموز التخزين السعة الثابتة (رمزية) من الحوض، يتم إضافة سعر الصرف الثابت للدلو رمزية. خوارزمية دلو رمزية مع بعض المفاهيم الأساسية يمكن وصفها في ما يلي:

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

الخوارزمية هي نسبة رمزية للسيطرة على معدل تصريف الانتاج من رمز، وهذا هو معدل لشبكة على FIG. إلى شبكة يمكننا أن نفهم معالج الرسالة، أداء خدمات معينة أو استدعاء RPC.

قارن دلو هجرة ودلو رمزية

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

وعموما، فإن خوارزمية دلو رمزية هو أفضل، ولكن التنفيذ هو أكثر تعقيدا.

في وقت لاحق إرادة التفاصيل استخدام RateLimiter الجوافة ورديس الحد تنفيذ نظم توزيعها.

الحب الأحذية من أن أفعل بنفسي؟ زوج واحد من الهواء الأردن 1 إلى البنين في النهاية كيف المهم؟

بعيدا عن المنزل مع جمهورية التشيك الطريق سيارة الخصم اختبار القيادة X70 التلقائي

لا يزيد عن 25 عاما، ومتوسط دخل أكثر من 100 مليون دولار، صافي منظم الأحمر للتحقيق الطريق لانهائي

تبرعم الزهور البالغة من العمر 28 عاما تلعب أصبح اهتمام الطلاب التحدي خاصة مشاهد عارية الشهيرة في فيلم جديد

فاخر جديد كاديلاك انخفاض قيمة XT4 كيف الانتخابات؟

وانغ لى يي جيان ليان س س جاي قوي ثلاثي مشترك! التي المعبود كنت على استعداد لدفع ثمن؟

بالإضافة إلى تكوين وتصميم الحرس، هواوي ماتي X فضلا عن قوة

8 وحده الظهر حقيبة كبيرة تخزين أمك الاستماع لهم على "قصة السنة الجديدة"

2017 أيام القط مزدوج 11 بو فولي: جنون قيصر 600 مليون مظاريف حمراء النقدية، ومخازن في إطار واحد مليون خط المشاركة

وترأس نائب رئيس رئيس نقابة الفنانين هونغ كونغ المسرحية المتخصصة TVB أسوأ

تجربة مجد 10 اطلاق النار: تبادل مجموعة من مرآة مرآة

2018 شباب الريف يمكن محاكمة ستة مشروع شعبية