استخدم يوريكا لتحقيق حوكمة الخدمة
الوظيفة: إدراك حوكمة الخدمة (تسجيل الخدمة واكتشافها)
مقدمة: Spring Cloud eureka هي وحدة حوكمة الخدمات تحت مشروع Spring Cloud Netflix. يعد مشروع Spring Cloud Netflix أحد المشاريع الفرعية لـ Spring Cloud. محتوىها الرئيسي هو حزم سلسلة من المنتجات المفتوحة المصدر من Netflix. يوفر تكامل Netflix OSS المكوّن ذاتيًا لتطبيقات Boot Spring. مع بعض التعليقات التوضيحية البسيطة ، يمكن للمطورين تكوين الوحدات النمطية الشائعة الاستخدام بسرعة في تطبيقاتهم وبناء نظام موزع ضخم. تتضمن وحداتها الرئيسية: اكتشاف الخدمة (Eureka) ، قاطع الدائرة (Hystrix) ، التوجيه الذكي (Zuul) ، موازنة تحميل العميل (الشريط) ، إلخ.
الممارسة العملية للمشروع:
مركز تسجيل الخدمة: Eureka-Server
الوظيفة: يوفر مركز تسجيل الخدمة وظيفة تسجيل الخدمة
مزود الخدمة: Eureka-Client
الوظيفة: تسجيل خدمة في مركز تسجيل الخدمة
مركز تسجيل الخدمة: Eureka-Server
قم بإنشاء مشروع Springboot جديد: Eureka-Server ، وتكوين pom.xml الخاص به كما يلي:
<Properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting <roupl> org.springframework.cloud </groupId> <StifactId> Spring-Cloud-Starter-Eureka-Server </suntifactid> </sependency> </sependencies> </rependencome> <spensidencies> <spensidencies> <roupeD> <soph> dalston.sr1 </version> <type> pom </type> <scope> استيراد </scope> </reperence> </perendencies> </spensionManagement>
من السهل جدًا تنفيذ وظيفة مركز تسجيل الخدمة. ما عليك سوى استخدام شرح توضيحي enableeurekaserver على فئة بدء تشغيل المشروع eurekaserverapplication.
enableeureKaServer @springbootapplication الفئة العامة eurekaserverapplication {public static void main (string [] args) {new SpringApplicationBuilder (eurekaserverapplication.class) .web (true) .run (args) ؛ }}بشكل افتراضي ، سيحاول مركز تسجيل الخدمة أيضًا تسجيل نفسه كعميل ، لذلك نحتاج إلى تعطيل سلوك تسجيل العميل الخاص به وإضافة المعلومات التالية إلى ملف تكوين Application.Properties:
spring.application.name = eureka-serverserver.port = 1001eureka.instance.hostname = localHosteureka.client.register-with-eureka = passeureka.client.fetch-registry = false
ابدأ eurekaserverapplication ، تفضل بزيارة http: // localhost: 9001/لمشاهدة صفحة يوريكا. من موقع المربع الأحمر ، يمكنك أن ترى أنه لا يوجد مثيل خدمة مهمة مسجل في مركز تسجيل الخدمة الحالي.
مزود الخدمة: Eureka-Client
بعد تسجيل كل مثيل ، هناك حاجة إلى نبضات قلب لإرسال دقات قلب إلى مركز التسجيل. عندما يسجل العميل مع الخادم ، سيوفر بعض البيانات الأولية ، مثل المضيف والمنفذ وعنوان URL والصفحة الرئيسية ، إلخ. إذا أوقات نبضات القلب ، عادة ما تتم إزالة المثيل من الخادم المسجل.
قم بإنشاء مشروع Springboot جديد: Eureka-Client ، وتكوين pom.xml الخاص به على النحو التالي:
<Properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting <roupl> org.springframework.cloud </groupId> <StifactId> Spring-Cloud-Croud-eureka </stifactid> </syperency> <serpency> <roupiD> org.springframework.boot </rougiD> </redency> <RependencyManagement> <redency> <redency> <roupiD> org.springframework.cloud </groupId> <StifactId> تعتمد على السحابة الزنبركية </scope> </scope> </version> </remounting> </remplence> </remplendation>
من السهل جدًا تنفيذ مزود خدمة. ما عليك سوى استخدام شرح enableeurekaclient على فئة بدء تشغيل المشروع eurekaclientapplication.
enableeureKaclientSpringBootApplication الفئة العامة eurekaclientapplication {public static void main (string [] args) {new SpringApplicationBuilder (eurekaclientapplication.class) .web (true) .run (args) ؛ }}تكوين ما يلي في application.properties
spring.application.name = eureka-clientserver.port = 9002eureka.client.serviceurl.defaultzone = http: // localhost: 9001/eureka/
من خلال خاصية spring.application.name ، يمكننا تحديد اسم الخدمات الدقيقة عند تسميتها ، بحيث يمكن الوصول إلى الخدمة.
تتوافق خاصية eureka.client.serviceurl.defaultzone مع محتوى التكوين في مركز تسجيل الخدمة ويحدد موقع مركز تسجيل الخدمة.
استخدم خاصية Server.port لتعيين منافذ مختلفة.
ابدأ فئة eurekaclientapplication
تحديث http: // localhost: 9001/، ويمكنك أن ترى أن مزود الخدمة لدينا قد سجل في مركز تسجيل الخدمة
إنشاء DiscoveryController جديد
استخدم discoveryclient.getServices () للحصول على اسم الخدمة المسجلة ، واستخدم @Value لتعيين المعلومات في ملف التكوين إلى IP
RestControllerPublic Class DiscoveryController {Auutowired Private DiscoveryClient DiscoveryClient ؛ Value ("$ {server.port}") سلسلة خاصة ؛ getMapping ("/client") public string client () {String Services = "Services:"+discoveryclient.getServices ()+"IP:"+IP ؛ System.out.println (الخدمات) ؛ خدمات العودة ؛ }}زيارة: http: // localhost: 9002/client
أخيرًا ، اسمحوا لي أن أشرح التعليقات التوضيحية enableeurekaclient و enablediscoveryClient
بادئ ذي بدء ، يمكن لكلا التعليقات التوضيحية إدراك وظيفة اكتشاف الخدمة. هناك العديد من تطبيقات خدمة الاكتشاف في Spring Cloud (Eureka ، Consul ، Zookeeper ، إلخ)
يعتمد enableeurekaclient على شبكات السحابة الربيعية. تستخدم الخدمة Eureka كمركز للتسجيل ، وسيناريوهات الاستخدام عازبة نسبيًا.
يعتمد enabledCoVeryClient على شباعي السحابة. تتبنى الخدمة مراكز التسجيل الأخرى.
Github: https://github.com/mingyuhub/springcloud
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.