A الكمال "زيادة": API تسريع منطق الأعمال

الكاتب: تسونغ لي، نائب رئيس الشريك التكنولوجي بايشان يون والهندسة

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

من أجل توضيح الأفكار، وسألت الأسئلة الثلاثة الأخرى:

ما كان (1) الأداء أسفل الخدمة؟

(2) الهندسة المعمارية الأساسية من أي نوع من الأعمال؟

الذروة (3) ارتفاع التزامن كم؟

على هذا المنوال، وعلينا أن استعادتها مع سيناريوهات:

على الرسم البياني الأعمال المورد الكهرباء

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

عندما "زيادة"، أولا من خلال المراقبة الجوية وعمليات اختيار الموظفين المنتجات المالية الصحيحة، وعلامة قاعدة البيانات؛ وبدأ النشاط للإفراج عن الموظفين من المنتج، وشراء للمستخدم النهائي.

عمل الشركة الرئيسي من محطة متنقلة، وعادة أقل حركة المرور، ولكن سوف تولد على الفور الكثير من حركة المرور إلى النشاط "زيادة"، ذروة الوصول المتزامن 10000000 أو أكثر (والتي قد تشمل بوت)، فإن مثل هذا بالتزامن كبير تتركز أساسا في الفئات التالية التفاعل:

  • لتحديث واجهة من المنتجات المالية، على غرار GET /get_fprod.php؟uid={$1}&pid={$2}&sid={$3}، المبلغ المطلوب من هذه الواجهات الأكثر، وهو ما يمثل 90.

  • واجهة واحدة لالمنتجات المالية، على غرار GET / order_fprod؟ رمز المستخدم = {$ 1} ومعرف المنتج = {$ 2} وOID = {$ 3} وسيد = {$ 4}، وحجم أقل من الطلبات مثل هذه الواجهات، وهو ما يمثل أقل من 1، ولكن هناك الكثير من العمل الإضافي 504.

حيث رمز المستخدم هو معرف المستخدم، معرف المنتج هو معرف المنتج المالي، OID هو رقم الطلب، سيد، مع المستخدم العميل بتغيير معرف رمزي عشوائي.

المشهد التفسير

وفقا للتواصل مع العملاء للحصول على مكان الحادث، والتي تم الحصول عليها في البداية الاستنتاجات التالية:

(1) خدمات الهاتف النقال للعملاء، والمنتجات UI عرضها على الجانب العميل عن طريق API، والمنتج موارد تقريبا أي ثابت، وحركة المرور عرض النطاق الترددي ليست عالية، وCDN التقليدي لا يمكن تحقيق دور ضغط التفريغ.

(2) عندما السنبلة، طلب مهلة كمية كبيرة 502/504، يطلب المستخدم وصف الخدمة في هذا الوقت قد تجاوز القدرة الاستيعابية للخادم، والتوسع الحاجة.

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

"غريب" ظاهرة

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

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

  • المبرمجين إطار لغة تطوير تجاوز طبقة، وليس تجسيدا حقا قراءة منفصلة والكتابة؛

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

مخبأ اختراق التخطيطي

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

علاج

1. قاعدة بيانات الوسيطة قراءة منفصلة والسيطرة الكتابة وحجمها

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

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

الخلية طريق الرسم البياني

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

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

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

2. استخدام API خدمات تسارع الخادم لتخفيف الضغط

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

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

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

واستنادا إلى هذه القضية المذكورة أعلاه، فإننا نوصي للعملاء استخدام "تسارع API" بايشان يون البلمرة CLN-X على حل هذه المشكلة.

تسارع API

الارتباط تسريع API مختلفة من تسارع CDN التقليدية، والعوائد محتويات ذاكرة التخزين المؤقت API ملزمة تقنيات التحسين TCP WAN، لتحسين طلبات API. API API من Hakusan إلى الإسراع في البيانات استجابة لكل بيانات ذاكرة التخزين المؤقت استجابة ميلي ثانية واحدة في كامل عقدة شبكة الحافة، وذاكرة عقدة لLRU (أقل المستخدمة مؤخرا) صرف الخوارزمية. في "الأحداث الساخنة"، وتابع أهم المعلومات المخزنة في عقدة الحافة، وعندما وصول العميل إلى API، العقدة حافة قد ترجع نتائج مباشرة، دون العودة إلى محطة مصدر الذهاب. الهيكل كله على النحو التالي:

API تسارع الرسم البياني

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

يحمل الحكمة التقليدية هذا المورد الحيوي (API) لا يمكن أن يكون مؤقتا، ولكن الجبال البيضاء أن "أي مورد يمكن أن يكون مؤقتا، ولكن وقت انتهاء الصلاحية مختلفة." للموارد ثابتة مشتركة، مخبأ أطول وقت انتهاء الصلاحية، وAPI ليست لا يمكن أن يكون مؤقتا، ولكن الوقت انتهاء الصلاحية قصيرة جدا. وبما أن سعر السهم من API الاستعلام، والذي حدد وقت انتهاء الصلاحية من 50 مللي ثانية؛ 100 سباق م بدأت فترة رد الفعل من 100-200 مللي، 50 مللي و لا يؤثر على تجربة المستخدم للكمبيوتر أو محطة متنقلة.

عندما لا ذاكرة التخزين المؤقت، ثانية واحدة، إذا 10،000 مستخدم في وقت واحد، مؤخرة تلقي المتزامنة 10000، وإذا يمكن نظريا أن تخفض 50 مللي عازلة الوقت ل20 النهاية الخلفية المتزامنة (1 ثانية / 50 ميلي ثانية = 20) ، يتم تقليل حمولة الخلفية إلى خمسة في المئة، طلبات أخرى إلى المستخدم مباشرة من خادم ذاكرة التخزين المؤقت.

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

كما يدعم API سرعة مخصصة تصل قواعد ذاكرة التخزين المؤقت، لتكون أقرب لرجال الأعمال، بما في ذلك سلسلة استعلام مواقع المعلومات، رأس، مسار ثلاثة أنواع، لمكان الحادث، ووضع القواعد التالية:

GET /get_fprod.php؟uid={$1}&pid={$2}&sid={$3}، كل لديه معرف المنتج المالي الخاص بها، معلومات عن المنتج ليست مع التغييرات هوية المستخدم ومعلومات العميل عشوائية، لذلك يمكن تجاهلها في مفتاح URI الكاش يتم تخزين المعلمة {1} و$ {$ 3}، / get_fprod.php؟ PID = {$ 2} مفتاح ذاكرة التخزين المؤقت في الألف عقدة الحافة.

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

الأثر العملي

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

  • متوسط زمن الاستجابة ونهاية طلب المستخدم استجابة كود 200 نسبة

  • متوسط الكتلة خدمة تحميل

النتائج النهائية على النحو التالي:

الشكل أ

الشكل B

الشكل C

كما هو مبين في A، يطلب المستخدم محطة خلال ذروة متوسط زمن الاستجابة، يتم ضغط من 3 ثواني إلى أقل من 40 ميلي ثانية، كود نسبة 200 لجميع الطلبات، كما هو موضح في FIG فترة الذروة استجابة B ارتفعت من نحو 70 إلى 100؛ FIG. C يمثل، أثناء الذروة، وزيادة العمق الخمول نهاية وحدة المعالجة المركزية من حوالي 10 إلى حوالي 97. مقارنة تقاس تظهر البيانات، تسارع API لتقليل متوسط زمن الاستجابة، وتعزيز تجربة المستخدم مهم جدا، وأكثر وضوحا للتأثير في الحد من الحمل خادم خلفية، استخدام API لتسريع يمكن الحفاظ على وحدة المعالجة المركزية الخمول الخلفية في أكثر من 91.

متابعة توصيات

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

1. طلب تفعيل خدمة الانتظار غير متزامن

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

2. API حظر جدار الحماية بوت الخبيثة

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

3. تصميم المنتج طبقة النظر في الخدمات الحط

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

ملخص

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

فوق القضية "زيادة"، ولكن API تسارع سيناريو نموذجي، ثم سوف يكون صاحب تسارع API في تحليل أكثر انتظاما.

بث العالم إشعار! غدا تانغ هوي + JOJO يعيش نهائيات المدارس الثانوية اليابانية

2018 اكفاء المواهب تقرير الربع الرابع سراح! كنت تريد أن تعرف هنا

المزيد والمزيد من الاجانب في اليابان، وهناك تعليمات خاصة هزلية حول كيفية العمل مع الأجانب

غير تشانج لا تشتري، وليس هذه السيارة لا يذكر، بدءا نماذج هيون اللون CS55 نسخة اليدوي

الصور تجسس محلية جديدة أورورا مع حجم كبير في لوحة التحكم في السوق في الربع الثالث

مرة واحدة الساحل لا يتجزأ، وتمتد جزر الفنانين، ملفوفة الآن في قوس النصر في باريس

حقيبة نينغبو لي LV اختفت في شحنات الشرقية: فقط أعلى تعويض 300 يوان

وقد أعجب، يريد أن يكون سيارة الأحلام، وضع السيارة تشي تشوان GS5270T GLS

تشانغ CS85 COUPE بيع مفتوحة من 149900 يوان من بيع / التصميم بسقف منحني حتى مؤخرتها

منطقة ليو من مدينة جينان، Gangcheng رسميا!

كانت FE صيغة البريد الموسم فتحت فتحت سيارات بي ام دبليو / أودي يتجزأ مزدوج

مانشستر يونايتد رحلة جديدة نحو النهوض العظيم؟ توتنهام هو مجرد التحدي الأول