خدمة الصغيرة الهندسة المعمارية والاستقرار وسبل تحسين تناسق البيانات

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

وهناك عدد كبير من الاعتماد RPC متزامن، وكيفية ضمان موثوقيتها؟

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

فشل استدعاء RPC، وكيفية ضمان بيانات للإصلاح بعد تخفيض التصنيف الائتماني؟

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

قائمة انتظار الرسائل هو تدفق تجاوز تدفق الرئيسي للRPC، وكيفية ضمان موثوقية؟

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

الرسائل في قائمة الانتظار كيف يتسق مع قاعدة بيانات المعاملة؟

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

هذه القضايا كلها مشاكل مشتركة مزيج من RPC والعمليات غير المتزامنة طابور سوف تواجهها. هنا أعطي اقتراحا لحل جميع المشاكل المذكورة أعلاه.

نقل غير متزامن متزامن، من أجل حل مشكلة الاستقرار

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

قوية تعتمد اعتمادا كليا، وليس مرتبطا المصب

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

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

في انتظار رسالة إلى التدفق الرئيسي

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

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

حماية قواعد البيانات وطابور التناسق المعاملات

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

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

قاعدة بيانات الكتابة الناجحة. ثم الغرفة كله خارج.

وحالة عدم كتابة رسالة إلى قائمة الانتظار تظهر في كلتا الحالتين. كيفية الاعتماد فقط على كافكا وماي عنصرين، transactionally قاعدة بيانات متناسقة والانتظار ذلك؟ تصور على النحو التالي

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

معالجة المعاملات قاعدة البيانات

إذا فشلت الصفقة قاعدة البيانات. ويقابل المحمول الكتابة قبل الطابور، نيابة عن طلب تم تجهيزها.

إذا كانت المعاملة قاعدة البيانات بنجاح. ثم كتابة الأعمال الحدث طابور هذا الموضوع

إذا طابور الكتابة ناجحة. ويقابل المحمول الكتابة قبل الطابور، نيابة عن طلب تم تجهيزها.

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

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

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

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

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

في غياب الكتابة قبل الطابور والتنفيذ نحن RPC من العملية هو هذا

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

كتابة مسبقة قائمة انتظار إدارة أوفست

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

المواضيع RPC 1، WAL1 المكتوبة (كتابة مسبقة، سجل)، الذي هو إزاحة

موضوع RPC 2، وكتب WAL2، ويقابل بها 2

موضوع RPC 3، وكتب WAL3، ويقابل بها 3

الانتهاء من موضوع RPC 3، ومحاولة لعلامة WAL3 ناجحة، والانتقال إلى إزاحة +3. ولكن بسبب السابق 1 و 2، لم يتم إجراء بنجاح، وهذه المرة إزاحة لا يمكن نقل.

الانتهاء من موضوع RPC 1، ومحاولة لعلامة WAL1 ناجحة، والانتقال إلى إزاحة 1. لأنه لا يوجد أمام الانتهاء WAL لم يتم تنفيذ، لذلك يتم نقل هذا الوقت إزاحة إلى النجاح.

الانتهاء من موضوع RPC 2، ومحاولة لعلامة WAL2 ناجحة، والانتقال إلى إزاحة 2. لأن هذا الأخير قد نفذت أكثر من 3، وبالتالي فإن إزاحة يتم تحديثها مباشرة 3.

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

برامج أخرى

تنفيذ التناسق المعاملات عبر قواعد بيانات وقوائم انتظار الرسائل، وهناك طريقتان:

حيث الشبكة، وذلك باستخدام قاعدة البيانات كما طابور، ومن ثم استخدام المعاملات قاعدة بيانات متعددة الجدول لضمان الاتساق: ما يهمني تصميم مراسلة الوسيطة (الكهرباء المورد فك اتساق البيانات والنزاهة لتحقيق، بما في ذلك PPT)؟

تاوباو إعلام، واثنين من مرحلة تلتزم مع وسيط رسالة إلى تحقيق ما يلي: تاوباو الرسائل الوسيطة (2013) - taowen - SegmentFault

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

ملخص

إلى الجزء الأمامي من ثلاثة جوانب مستقلة

باستخدام برامج نقل غير متزامن متزامن لتحسين توافر RPC متزامن، مع تحسين اتساق البيانات.

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

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

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

يقال أن هذا الشيء يمكن أن يساعدك على كتابة كود أقل بنسبة 30

يوم 2000000000 معالجة البيانات، في الوقت الحقيقي ممارسة الهندسة المعمارية نظام الخدمة سلوك المستخدم

تاوباو المحمول محطة الوصول بوابة تطور البنية التحتية الطريق

المورد B2B الكهرباء لمائة مليون المثال حجز، والحديث عن دفن نقاط البيانات من وجهة نظر مدير المنتج

كم تبلغ تقنية النسخ الصفري في Netty و Kafka؟

وشو Dongdong مجرد صورة حمالة يكون مجنونا لتمرير! ريترو حمالة فستان أحمر مع شعر مجدول، صورة جميلة

من "والنجوم" الحلو رجل أصغر سنا، وسونغ تشيان خزانة هو ما أريد، لدينا طول الساق كبير

تشانغ اليوم ارتداء تنورة ذيل السمكة هو في الحقيقة الشيطان! Zhuangshan كيندال لا يفقد ومعقدة على غرار Gumo دنغ اللعب

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

عندما خلع الأقنعة تلك اللحظة، وبالتأكيد الكثير من الناس يشعرون سيئة، ولكن لا أحد يشك لها القبيح

أصبح قص الشعر المجموعة الأكثر جمالا في الصين! تحية الملائكة هي، في الواقع، الشعر القصير، جميلة جدا

هرع دوران أربعة أرقام، والحصول على أكثر من 30، وافتتح أول موجة من هانغتشو عام الفأر قادم