سلف سقالات الخدمات الصغيرة الخاصة بـ Lamp-Cloud هي zuihou-admin-cloud بدءًا من 3.0.0، تمت إعادة تسميتها بـ Lamp-Cloud وهي عضو في مشروع المصباح.
سقالات الخدمات الصغيرة لسحابة المصباح عبارة عن سقالات خدمات صغيرة SaaS تعتمد على SpringCloud (Hoxton.SR10) + SpringBoot (2.3.10.RELEASE) ولها نظام موحد لإدارة الخلفية للترخيص والمصادقة، والذي يتضمن إدارة المستخدم وإدارة أذونات الموارد والبوابة تدعم الوحدات النمطية المتعددة مثل واجهة برمجة التطبيقات (API) والمعاملات الموزعة واستئناف تجزئة نقاط توقف الملفات الكبيرة التطوير المتوازي لأنظمة الأعمال المتعددة ويمكن استخدامها كسقالات تطوير للخدمات الخلفية. الكود موجز والبنية واضحة ومناسبة للتعلم والاستخدام المباشر في المشاريع. تستخدم التكنولوجيا الأساسية أطر العمل والبرامج الوسيطة الرئيسية مثل Nacos وFegin وRiadfdson وZuul وHystrix وJWT Token وMybatis وSpringBoot وRedis وRiadfdsitMQ.
وظيفة سقالات الخدمة الصغيرة لسحابة المصباح
1. تسجيل الخدمة واكتشافها واستدعاءها
يمكن لتسجيل الخدمة واكتشافها استنادًا إلى Nacos، باستخدام Feign لتنفيذ التشكيل البيني للخدمة، تحقيق نفس تجربة الترميز مثل استدعاء الطرق المحلية عند استخدام طلبات HTTP للمكالمات عن بعد. لا يدرك المطورون تمامًا أن هذه طريقة عن بعد، بل إنها ليست كذلك أدركت أن هذا هو طلب HTTP.
2. مصادقة الخدمة:
استخدم JWT لتعزيز التحقق من الإذن للجدولة بين الخدمات وضمان أمان الخدمات الداخلية.
3. موازنة التحميل
يتم استخدام الباقي الذي تحتفظ به الخدمة للتحكم في الوكيل والبوابة. بالإضافة إلى Node.js و nginx شائعة الاستخدام، يمكن أن يساعدنا zuul و riadfdson من سلسلة Spring Cloud في التحكم العادي في البوابة وموازنة التحميل. من بينها، يعتمد التوسع والمرجع من المشاريع الأجنبية على البرنامج الإضافي الذي يحد من التيار JWT Zuul، والذي يحد من التيار.
4. آلية الصمامات
نظرًا لتوزيع الخدمات، ومن أجل تجنب "الانهيار الجليدي" للمكالمات بين الخدمات، يتم استخدام Hystrix كمصهر لتجنب "الانهيار الجليدي" للمكالمات بين الخدمات.
5. المراقبة
استخدم Spring Boot Admin لمراقبة حالة تشغيل كل خدمة مستقلة، واستخدم التوربين لعرض حالة التشغيل وتكرار الاتصال للواجهة في الوقت الفعلي، واستخدم Zipkin لعرض سلسلة الاتصال بين كل خدمة، وما إلى ذلك.
6. ربط مراقبة المكالمات
استخدم Zipkin لتحقيق مراقبة أداء الارتباط الكامل للخدمات الصغيرة، وعرض مؤشرات متنوعة من البعد الشامل إلى البعد المحلي، وعرض جميع معلومات أداء سلسلة الاتصال عبر التطبيقات مركزيًا، والتي يمكنها بسهولة قياس الأداء العام والمحلي، والعثور بسهولة على مصدر العيوب، والتي يمكن أن تقلل بشكل كبير من وقت استكشاف الأخطاء وإصلاحها في الإنتاج. معها يمكننا أن نفعل
طلب تتبع الارتباط وموقع الخطأ السريع: يمكن تحديد موقع معلومات الخطأ بسرعة من خلال سلسلة الاتصال المدمجة مع سجلات الأعمال. التصور: كل مرحلة تستغرق وقتًا ويتم تحليل الأداء. تحسين التبعية: توفر كل رابط اتصال وفرز تبعيات الخدمة وتحسينها. تحليل البيانات، وتحسين الارتباط: يمكن الحصول على مسارات سلوك المستخدمين، ويتم تطبيق التحليل الموجز في العديد من سيناريوهات الأعمال.
7. أذونات البيانات
تنفيذ أذونات بيانات بسيطة باستخدام اعتراض DataScopeInterceptor استنادًا إلى Mybatis
8. SaaS (متعدد المستأجرين) حل غير تدخلي
استخدم اعتراض Mybatis لاعتراض كل SQL وتعديل المخطط الافتراضي لتحقيق عزل البيانات متعددة المستأجرين. ويدعم إمكانية التوصيل.
9. ذاكرة التخزين المؤقت من المستوى الثاني
يتم استخدام J2Cache لتشغيل ذاكرة التخزين المؤقت. تستخدم ذاكرة التخزين المؤقت من المستوى الأول الذاكرة (الكافيين) وتستخدم ذاكرة التخزين المؤقت من المستوى الثاني Redis. نظرًا لأن العدد الكبير من قراءات ذاكرة التخزين المؤقت سيؤدي إلى أن تصبح شبكة L2 عنق الزجاجة للنظام بأكمله، فإن هدف L1 هو تقليل عدد القراءات إلى L2. يُستخدم إطار التخزين المؤقت هذا بشكل أساسي في بيئات المجموعة. يمكن استخدامه أيضًا على جهاز واحد لتجنب التأثير على الأعمال الخلفية بعد بدء التشغيل البارد لذاكرة التخزين المؤقت الناتجة عن إعادة تشغيل التطبيق.
10. تحويل الفول الأنيق
استخدم مكونات Dozer لتحسين وتحويل DTO وDO وPO والكائنات الأخرى
11. التحقق من النموذج الموحد على الأطراف الأمامية والخلفية
يتطلب التحقق الصارم من النموذج عادةً التحقق من الواجهة الأمامية والخلفية في نفس الوقت، ومع ذلك، في المشاريع التقليدية، لا يمكن اختبار الواجهة الأمامية والواجهة الأمامية إلا مرة واحدة لكل منهما ويجب تعديل الواجهة الخلفية في نفس الوقت. لذلك، يتم تغليف تبعية البداية لـ zuihou-validator-starter على أساس مدقق السبات، مما يوفر واجهة مشتركة للحصول على القواعد التي تحتاج إلى التحقق منها، ثم تستخدم الواجهة الأمامية القواعد التي ترجعها الواجهة الخلفية. إذا تغيرت القواعد في المستقبل، فستكون هناك حاجة إلى الواجهة الخلفية فقط.
12. منع هجمات البرمجة النصية عبر المواقع (XSS)
استخدم عوامل التصفية لتصفية معلمات النموذج في جميع الطلبات
قم بتصفية جميع معلمات نوع التطبيق/json من خلال أداة إلغاء تسلسل Json
13. تم تسجيل الدخول حاليًا إلى حاقن معلومات المستخدم
حقن هوية المستخدم من خلال التعليقات التوضيحية
14. واجهة برمجة التطبيقات عبر الإنترنت
نظرًا لأن بعض وظائف واجهة المستخدم الأصلية لـ swagger-ui ليست ودية بدرجة كافية، فقد اعتمدنا واجهة swagger-bootstrap-ui المحلية مفتوحة المصدر وأنشأنا ستاتير لتسهيل مستخدمي Springboot.
15. مولد الكود
يتم تخصيص مجموعة من مولدات الأكواد بناءً على Mybatis-plus-generator، من خلال تكوين التعليقات التوضيحية لحقول قاعدة البيانات، فإنه يقوم تلقائيًا بإنشاء فئات التعداد، والتعليقات التوضيحية لقاموس البيانات، وSaveDTO، وUpdateDTO، والتعليقات التوضيحية لقاعدة التحقق من صحة النموذج، والتعليقات التوضيحية Swagger، وما إلى ذلك.
16. جدولة المهام المجدولة
تحسينات الوظيفة بناءً على وظائف xxl. (على سبيل المثال: إرسال المهام في وقت محدد، دمج المشاريع مع المنفذين والمجدولين، مصادر بيانات متعددة)
17. تحميل ملف كبير/نقطة توقف/سيرة ذاتية مجزأة
تستخدم الواجهة الأمامية webupload.js وتستخدم الواجهة الخلفية NIO لتنفيذ التحميل المجزأ للملفات الكبيرة بعد بدء تشغيل خدمات Eureka وZuul وFile، يمكنك فتح docs/chunkUploadDemo/demo.html مباشرة للاختبار. بعد الاختبار، يبلغ الحد الأقصى للذاكرة المحلية 128 ميجا بايت لبدء خدمة الملفات، ويمكن تحميل ملف كبير يبلغ 4.6G+ بنجاح في غضون 5 دقائق، وسيتأثر وقت الخدمة الرسمي بعرض النطاق الترددي للمستخدم وعرض النطاق الترددي للخادم، وسوف يتأثر ذلك يستغرق وقتا طويلا.
18. المعاملات الموزعة
متكامل مع البرمجيات الوسيطة للمعاملات الموزعة من Alibaba: Seata، فهو يحل مشاكل المعاملات الموزعة التي تواجهها سيناريوهات الخدمات الصغيرة بطريقة فعالة وبدون تدخل.
19. الحاقن التلقائي للبيانات ذات الصلة بالجداول المشتركة وقاعدة البيانات المشتركة والخدمات المشتركة
يتم استخدامه لحل مشكلة تكرار البيانات ذات الصلة لسمات الجدول المتقاطع وقاعدة البيانات المشتركة وبيانات الترحيل عبر الخدمات أو سمات كائن واحد وهو يدعم الحقن التلقائي لسمات البيانات الثابتة (قاموس البيانات) والمفتاح الأساسي الديناميكي بيانات.
20. الافراج عن تدرج الرمادي
من أجل حل مشكلة التحديث المتكرر للخدمة عبر الإنترنت، والتراجع، والتكرار السريع، والتطوير التعاوني داخل الشركة، يستخدم هذا المشروع استراتيجية موازنة التحميل المعدلة لـ riadfdson لتحقيق إصدار التدرج الرمادي.
سجل تحديث سحابة المصباح
v3.5.5
إعادة بناء
lamp-cloud: اضبط ترتيب تنفيذ TraceFilter لتسهيل قيام المرشحات الأخرى في البوابة بتسجيل معلومات السجل
lamp-cloud: تحسين RouterMeta ودعم المفاتيح الأمامية المخصصة
lamp-cloud: تحسين مشكلة الزحف إلى البيانات المشوهة في واجهة الزحف الإقليمية
lamp-cloud: لا يمكن لتحسين واجهة الزحف الإقليمية الزحف إلى البيانات الخاصة بالمقاطعات الموجودة أسفل المدينة
lamp-cloud: تمت إضافة طريقة addChildren إلى الكيان الأساسي لهيكل الشجرة
lamp-cloud: قم بتحسين بنية تجميع التباهي لتجاهل خدمة مقبس الويب
يصلح
lamp-util: عندما تحتوي معلمة رأس الطلب على اللغة الصينية، يُبلغ استدعاء التظاهر غير المتزامن عن خطأ
lamp-cloud: تم إصلاح الخلل المتمثل في عدم تمكن بنية الشجرة من الحصول على البنية الهرمية للربط الصحيحة.
lamp-web-plus: إصلاح الخلل الناتج عن الارتفاع الثابت لصفحة الشجرة
lamp-web-plus: حل مشكلة القائمة المنسدلة لمكون TableAction مما يتسبب في عرض الخط الفاصل بشكل غير صحيح بسبب الأذونات
lamp-web-plus: تم إصلاح مشكلة نقل البيانات من صفحة القائمة إلى صفحة التعديل وتعديل البيانات عن طريق الخطأ.