إفتح الموقف الجديد | كيفية استخدام مركز التكوين التحكم في التدفق الحيوي العالمي؟

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

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

RPC تدعو نوع متزامن، مثل راحة، دوبو، HSF تنتمي إلى هذه الفئة. لهذا النوع استدعاء متزامن، وعادة ما يحد الطريق الى اثنين: التحكم في التدفق العالمية المتزامنة لموفر الخدمة، أو المتزامنة خدمة التحكم في التدفق المحلية للمستهلكين. أنواع مماثلة من وسائل السيطرة، عن طريق الحد من الخدمة يتم إنهاء أو الاتصال برقم خدمة العملاء من نهاية المتزامنة إلى القيود.

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

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

MaxRate = 1 / ConsumInterval * ConcurrentThreadNumber

على سبيل المثال، إذا كان موضوع الرسالة لمدة 20 استهلاك المتزامنة، الكمون هو 100MS، من الناحية النظرية، واستهلاك المتزامنة يمكن التحكم أقل من 200. صيغة محددة على النحو التالي:

200 = 1 / 0.1 * 20

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

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

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

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

واستنادا إلى مبدأ تأخير مراقبة الحركة المستهلك

المبدأ الأساسي هو على النحو التالي. من بينها، ومسؤول أو وحدة التطبيقات التي نشرتها ACM التكوين تأخير استهلاك (RCV_INTERVAL_TIME)، كل MQ الاستهلاكية التي الاشتراك في هذا التكوين. من الناحية النظرية، هذا التكوين من الإفراج الصادرة لكافة العملاء، يمكنك إكمال (اعتمادا على عرض الشبكة) حدود 1 في الثانية.

في نموذج التعليمات البرمجية

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

إنشاء المعلمة تأخير المستهلك في ACM، لقطات الشاشة أدناه.

ضبط الاستهلاك العالمي المتغير تأخير

أولا، تعيين المستهلك متغير عمومي يتلقى تأخير، على النحو التالي.

 // رسالة التهيئة تلقت المعلمة تأخير، في وحدات من ميلي ثانية واحدة

 ثابت الباحث RCV_INTERVAL_TIME = 10000؛

 // وحدة خدمة التهيئة التكوين التلقائي المعلمة الحصول على نموذج التعليمات البرمجية أدناه

 ConfigService.init ( "acm.aliyun.com"، / * ID المستأجر * / "XXX"، / * * AK / "XXX"، / * SK * / "ص ص ص")؛

 // حصول على مبادرة التكوين

 محتوى سلسلة = ConfigService.getConfig ( "app.mq.qos"، "DEFAULT_GROUP"، 6000)؛

 الخصائص ص = خصائص جديدة ()؛

 محاولة {

 p.load (StringReader جديد (المحتوى))؛

 RCV_INTERVAL_TIME = Integer.valueOf (p.getProperty ( "RCV_INTERVAL_TIME"))؛

 } صيد (IOException ه) {

 e.printStackTrace ()؛

 }

ثانيا، تعيين المستمع ACM، عندما يتم تعديل التكوين لضمان أنه حتى لو المعلمات تحديث RCV_INTERVAL_TIME، على النحو التالي.

// وقت التهيئة، إضافة إلى مراقبة التكوين، وتغييرات التكوين رد الإخطار

 ConfigService.addListener ( "app.mq.qos"، "DEFAULT_GROUP"، ConfigChangeListener الجديدة () {

 الفراغ العام receiveConfigInfo (سلسلة configInfo) {

 الخصائص ص = خصائص جديدة ()؛

 محاولة {

 p.load (StringReader الجديد (configInfo))؛

 RCV_INTERVAL_TIME = Integer.valueOf (p.getProperty ( "RCV_INTERVAL_TIME"))؛

 } صيد (IOException ه) {

 e.printStackTrace ()؛

 }

 }

 })؛

مجموعة MQ المنطق تأخير استهلاك

أمثلة كاملة هي على النحو التالي.

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

 // التعليمة البرمجية التالية يمكن تركيبها مباشرة إلى وظيفتها الرئيسية () في

 خصائص خصائص = خصائص جديدة ()؛

 properties.put (PropertyKeyConst.ConsumerId "CID_consumer_group")؛

 properties.put (PropertyKeyConst.AccessKey، "الثلاثون")؛

 properties.put (PropertyKeyConst.SecretKey "، ص ص ص")؛

 properties.setProperty (PropertyKeyConst.SendMsgTimeoutMillis، "3000")؛

 // مجموعة TCP الوصول اسم المجال (هنا في بيئات الإنتاج سحابة العامة، على سبيل المثال)

 properties.put (PropertyKeyConst.ONSAddr،

 "Http://onsaddr-internet.aliyun.com/rocketmq/nsaddr4client-internet")؛

 المستهلك المستهلك = ONSFactory.createConsumer (خصائص).

 consumer.subscribe (/ * الموضوع * / "موضوع اسم" / * العلامة * / لاغية، MessageListener جديد ()

 {

 العمل العام تستهلك (رسالة رسالة، والسياق ConsumeContext) {

 // MQ الاشتراك جودة الخدمة بداية منطقية،

 // كل عملية تستغرق والنوم لثوان RCV_INTERVAL_TIME مع 100 مللي دورة النوم.

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

 // RCV_INTERVAL_TIME < = 0 يعني عدم وجود النوم.

 الباحث rcvIntervalTimeLeft = RCV_INTERVAL_TIME.

 بينما (rcvIntervalTimeLeft >  0) {

 إذا (rcvIntervalTimeLeft >  RCV_INTERVAL_TIME) {

 rcvIntervalTimeLeft = RCV_INTERVAL_TIME.

 }

 محاولة {

 إذا (rcvIntervalTimeLeft > = 100) {

 rcvIntervalTimeLeft - = 100؛

 Thread.sleep (100)؛

 } {شيء آخر

 Thread.sleep (rcvIntervalTimeLeft)؛

 rcvIntervalTimeLeft = 0؛

 }

 } صيد (InterruptedException ه) {

 e.printStackTrace ()؛

 }

 }

 // MQ الاشتراك نهايات منطقية الفاصلة

 System.out.println ( "أستقبال:" + رسالة)؛

 / *

 * وضع منطق عملك هنا.

 * /

 تنفيذ DoSomething ()؛

 العودة Action.CommitMessage.

 }

 })؛

 consumer.start ()؛

النتائج التشغيل

قائمة بذاتها عملية للاستهلاك المستهلك، على افتراض طابور لا حصر له داخل الرسالة، وغياب الاستهلاك وان، وتنقسم الى ثلاثة أشواط اختبار لمدة 5 دقائق، على التوالي، والتي تغذيها دفع ACM التكوين التالية الآثار.

RCV_INTERVAL_TIME = 100 مللي ثانية

RCV_INTERVAL_TIME = 5000 مللي ثانية

RCV_INTERVAL_TIME = 1000 مللي ثانية

وكانت النتائج على النحو التالي، في حالة العلاج يستغرق حوالي 100MS MQ أعمال المستهلكين في واحدة، ونتائج الاختبار بذاتها من 20 المواضيع المتزامنة.

RCV_INTERVAL_TIME = 100 مللي ثانية: متوسط أداء استهلاك حوالي 9000 TPM

RCV_INTERVAL_TIME = 5000 مللي ثانية: متوسط الأداء الاستهلاك يقتصر على حوالي 200 TPM

RCV_INTERVAL_TIME = 1000 مللي ثانية: متوسط الأداء الاستهلاك سيرتفع إلى حوالي 1100 TPM

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

المنتجات ذات الصلة، يرجى الاطلاع على:

منتجات رسالة

Aliyun MQ: aliyun.com/product/ons

تكوين المنتج

Aliyun ACM: aliyun.com/product/acm

كروس أوفر ويصبح الجيل الأكبر سنا؟ يعتقد نيسان المستقبل ينتمي إلى السيارات

مزيفة العالم كثيرا، لماذا لم يكن هذا سيارة وهمية؟

كثيرا أخي! سوبر 2 ارسنال فاز اعبي بايرن ميونيخ، ونهائيات سيفوز ليست بعيدة

أكثر من أسبوعين! هاردن شد عضلي المعتدلة، وحتى أكثر إثارة للخوف هو وراء سباق الصواريخ!

العمق | علي تفسير بنية النظام سلسلة التوريد الجديدة

من "متعددة فلاش" نظرة خلف الفريق بعد 90 بايت الضرب "الشباب" توقعات التوظيف

الماشية جولف تعرف، لكنك تعلم أنها تسير على الطريق CRC كيف الوجود؟

التمتع متعة كرة القدم في نهاية المطاف! إنجلترا يصرخون التدريب الدجاج، ستيرلينغ موقف حقا الساخنة العين

حصلت على الترخيص على كل OK ذلك؟ 10 أشياء أن كل صاحب يجب أن يعرف

براينت يريد البكاء! عرض يحتقر المودة، ويحتقر أريد أن مدرب، إلا أن إعادته؟

فريق 0: 1 من، الدموع مصور العراقية، واستشهد CCTV مراسل التعاطف!

VR العالم لا يمكن تخليص أنفسهم منغمسين نفسه تسوى معك متعة "GTA5" من