ما هو Spring Cloud Eureka
Spring Cloud Eureka هو مكون في Spring Cloud. يتم تغليفه الثانوي استنادًا إلى Netflix eureka ، وهو مسؤول بشكل أساسي عن إكمال وظائف حوكمة الخدمة في إطار الخدمات الصغيرة. يضيف سحابة الربيع تكوين أتمتة على غرار التمهيد إلى Eureka. نحتاج فقط إلى تبعيات مرجعية بسيطة وشروحات لتمكين صندوق الربيع من دمج تطبيقات الخدمات الصغيرة بسهولة مع نظام إدارة خدمة Eureka.
حوكمة الخدمة
حوكمة الخدمة هي الوحدة النمطية الأساسية والأساسية في إطار الخدمات المجهرية. يتم استخدامه بشكل أساسي لتحقيق التسجيل الآلي واكتشاف حالات الخدمات الدقيقة المختلفة.
في البداية ، لم يكن هناك العديد من خدمات نظام الخدمات الدقيقة التي قد يتم بناؤها ، ويمكننا إكمال مكالمة الخدمة من خلال بعض التكوينات الثابتة. على سبيل المثال ، هناك خدمتان A و B. عندما تحتاج الخدمة A إلى الاتصال بالخدمة B لإكمال عملية تجارية ، من أجل تحقيق توافر عالي للخدمة B ، سواء اعتبرنا توازنًا معقدًا على الخادم أو موازنة التحميل على العميل ، نحتاج إلى الحفاظ على قائمة مثيل B يدويًا. ومع ذلك ، مع تطوير العمل ، تصبح وظائف النظام أكثر وأكثر تعقيدًا ، وأصبحت الخدمات المجهرية المقابلة أكثر وأكثر صعوبة.
لحل هذه المشكلة ، تم إنشاء عدد كبير من أطر ومنتجات حوكمة الخدمات. تدور هذه الأطر فعليًا حول آليات تسجيل الخدمة واكتشاف الخدمة لإكمال الإدارة الآلية لمثيلات تطبيق الخدمات الصغيرة.
تسجيل الخدمة
في إطار حوكمة الخدمة ، عادةً ما يتم بناء مركز لتسجيل الخدمة. تسجل كل وحدة مثيل خدمة الخدمة الخاصة بها مع مركز التسجيل ، ويخبر مركز التسجيل سلسلة من المعلومات الإضافية مثل موقع مضيف المثيل ورقم المنفذ ورقم الإصدار وبروتوكول الاتصال ، وما إلى ذلك ، وينظم مركز التسجيل قائمة الخدمة وفقًا لاسم الخدمة.
اكتشاف الخدمة
نظرًا لأن العمل بموجب إطار حوكمة الخدمة ، لم تعد الاتصال والمكالمات بين الخدمات من خلال تحديد عناوين مثيل محددة ، ولكن من خلال بدء مكالمات الطلب إلى اسم الخدمة. لذلك ، عندما يقوم متصل الخدمة باستدعاء واجهة مزود الخدمة ، فإنه لا يعرف موقع مثيل الخدمة المحدد. لذلك ، من الضروري أولاً بدء طلب استعلام للسجل والحصول على قائمة مثيلات لتحقيق الوصول إلى مثيلات خدمة محددة.
بناء خدمة مركز تسجيل يوريكا
بناء مركز واحد يوريكا
ستستند جميع تطوراتنا اللاحقة إلى الإصدار أعلاه. تجدر الإشارة إلى أن Sring Cloud يستخدم إصدار Snapshot ، لذلك تحتاج إلى تحديد عنوان المستودع في ملف POM.
أولاً ، ننشئ مشروعًا جديدًا للبلاغ الربيع ، أطلق عليه اسمه: Spring-Cloud-Eureka ، ونضيف التبعيات اللازمة إلى POM. ملف POM المحدد كما يلي:
<؟ XSI: schemalocation = "http://maven.apache.org/pom/4.0.0 <soph> 0.0.1-snapshot </version> <packaging> جرة </packaging> <ame> spring-cloud-eureka </mame> <Arnal> <roupl> org.springframework.boot </rougiD> <StifactId> spring-boot-starter-parent </artifactid> مستودع-> </inpart> <ferties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> <pring-cloud.version> finchley.build-snapshot </spring-cloud.version> </sprenties> <rependencies> <reperence> <roupled> org.springframework.boot </groupid> <SrifactId> spring-boot-web-web </artifactid> </sultency <roupl> org.springframework.cloud </groupId> <StifactId> Spring-Cloud-Cloud-Netflix-Eureka-Server </shoseid> </repreadency> <springid> org.springframework.boot </groupid> </reperency> </premency> </sependencies> <RependencyManagement> <rependencies> <reperency> <roupiD> org.springframework.cloud </rougeid> <StifactId> عوامل النزول الزنبركية </scope> </scope> </scope> </reperency> </preminency> </reperenceManagement> <build> <uccedIns> <roupiD> org.springframework.boot </rougeid> <StifactId> spring-boot-maven-plugin </spring-snaps </plugin> </plugins> </build> لقطات </name> <Url> https://repo.spring.io/snapshot </url> <snapshots> <تمكينها> صحيح </enabled> </snapshots> </ropository> <sropository> <id> spring-milestones </id> <name> mypring spring </ <Url> https://repo.spring.io/milestone </url> <snapshots> <تمكين> خطأ </enabled> </snapshots> </ropository> </spositories> </project>
ابدأ سجل خدمة لتوفير محادثات للتطبيقات الأخرى من خلال تعليق توضيحي enableeurekaserver. هذه الخطوة بسيطة للغاية. يمكنك تشغيل هذه الوظيفة عن طريق إضافة هذا التعليق التوضيحي إلى تطبيق التمهيد الربيعي العادي:
@springbootapplication@enableeurekaserverpublic class ApplicationeureKaserver {public static void main (string [] args) {springapplication.run (applicationeurekaserver.class ، args) ؛ }}ضمن التكوين الافتراضي ، سيقوم خادم مركز التسجيل أيضًا بتسجيل نفسه كعميل. بشكل عام ، نحتاج إلى تعطيل هذه الوظيفة ، والتطبيق المعدل. yml كما يلي:
# Spring Configspring: التطبيق: الاسم: spring-boot-eureka # خادم configerver: المنفذ: 9871 # eureka configureka: المثيل: اسم المضيف: العميل المحلي: التسجيل مع-eureka: false # لا تسجل نفسك مع مركز التسجيل http: // $ {eureka.instance.hostname}: $ {server.port}/eureka/ نظرًا لأننا جميعًا نعمل محليًا ، من أجل تمييز الخدمة اللاحقة ، قمنا بتعيين منفذ سجل الخدمة من خلال Server.pres لتشغيل المنفذ على النحو التالي: 9871
بعد الانتهاء من التكوين أعلاه ، ابدأ التطبيق وزيارة http: // localhost: 9871. يمكنك رؤية الصفحة التالية حيث تكون قائمة المثيل المسجلة حاليًا في Eureka فارغة ، مما يشير إلى أنه لم يتم تسجيل أي خدمة في مركز التسجيل.
أعتقد أن الجميع لاحظوا خطين من الكلمات الحمراء اللذيذة أعلاه:
طارئ! قد تكون Eureka مطالبة بشكل غير صحيح بالحالات عندما لا تكون كذلك. التجديدات أقل من العتبة ، وبالتالي لا يتم انتهاء الصلاحية للحالات فقط لتكون آمنة.
السبب: آلية الحماية الذاتية. أثناء تشغيل خادم Eureka ، سيحسب ما إذا كانت نسبة فشل نبضات القلب أقل من 85 ٪ خلال 15 دقيقة. إذا حدث ذلك (من السهل إرضاءه أثناء تصحيح الأخطاء المستقلة ، ولكن في الواقع يكون سبب عدم استقرار الشبكة في بيئة الإنتاج) ، سيحمي Eureka Server معلومات تسجيل المثيل الحالية ويطالب بهذا التحذير.
نظرًا لأن هذه المشكلة عرضة للحدوث في المواقف المستقلة ، بعد إيقاف الحماية الذاتية وفقًا للتكوين عبر الإنترنت ، ستظل Eureka استدعاء إنذار ، مما يدفع إلى إيقاف تشغيل الوضع الآمن ، ولا يمكن ضمان صحة المثيل. لذلك ، نتجاهل هذه المشكلة في الوقت الحالي ويمكن حلها عندما يكون نشر الكتلة لاحقًا.
تسجيل مزود خدمة
بعد الانتهاء من إنشاء خدمة مركز التسجيل ، يمكننا محاولة إضافة تطبيق حذاء الربيع الحالي إلى نظام إدارة خدمة Eureka.
ما زلنا نأخذ خادم السحابة في الربيع السابق كمثال. نحتاج فقط إلى تعديل التكوين التالي للتطبيق.
# اسم التطبيق الربيع: التطبيق: الاسم: Spring-Cloud-Server# Eureka Center Center الموقع Eureka: العميل: Service-url: DefaultZone: http: // localhost: 9871/eureka/
بعد اكتمال التعديل ، يمكن بدء الخدمة. في هذا الوقت ، نقوم بتحديث صفحة الإدارة في Eureka ونرى معلومات قائمة المثيل المسجلة حاليًا لدى Eureka على النحو التالي:
هذا يدل على أن خدمتنا قد تم تسجيلها بنجاح في مركز التسجيل.
رمز مثال ذي صلة: https://github.com/sagesource/spring-cloud-set
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.