مقدمة إلى يوريكا
يوفر Eureka خدمات قائمة على الراحة ، والتي تستخدم بشكل أساسي في إدارة الخدمات في المجموعة. يوفر Eureka مكونات العميل بناءً على لغة Java ، والتي تنفذ وظائف موازنة التحميل ، مما يخلق شروطًا لنشر المكونات التجارية. باستخدام هذا الإطار ، يمكن تسجيل مكونات العمل في حاويات Eureka ، والتي يمكن نشرها في مجموعات ، ويحافظ Eureka بشكل أساسي على قائمة بهذه الخدمات ويتحقق تلقائيًا من حالتها.
بنية البرنامج
إنشاء خادم eureka
تبعية مافن
<RependencyManagement> <ependencies> <redence> <roupiD> org.springframework.cloud </rougiD> <intifactid> تعبيد السحابة الزنبركية </artifactid> <soph> dalston.sr1 </version> pom </type> </scope> <roupl> org.springframework.cloud </groupId> <StifactId> spring-cloud-starter-eureka-server </insifactid> </perendency> </
قم بتغيير منفذ بدء تشغيل Boot في Application.yml
الخادم: المنفذ: 8761
تمكين شرح خدمة Eureka enableeurekaserver
@enableeurekaserver@springbootapplicationpublicpublicpublic ekserverapplication {public static void main (string [] args) {new SpringApplicationBuilder (ekserverapplication.class) .run (args) ؛ }}ابدأ سبرينغ بوت
[Thread-11] oscneserver.eurekaserverbootstrap: سياق الخادم المهيئ [الرئيسي] sbcettomCatembedDedServletContainer: بدأ Tomcat على المنفذ (s): 8761 (http) ekserverapplication في 8.594 ثانية (JVM يعمل لمدة 9.523)
سيظهر استثناء لا يمكن توصيله بالخادم أثناء بدء التشغيل. وذلك لأن يوريكا تعامل نفسها كعميل للاستيلاء على معلومات التسجيل عند البدء.
نسخة الكود كما يلي:
com.netflix.discovery.shared.transport.transportException: لا يمكن تنفيذ طلب على أي خادم معروف
أضف التكوين التالي ولن يظهر مرة أخرى عند البدء
يوريكا: العميل: التسجيل مع
يعلن Recordwitheureka ما إذا كان سيتم تسجيل معلوماته الخاصة على خادم Eureka ، والقيمة الافتراضية صحيحة.
تعلن FetchRegistry ما إذا كانت ستزحف معلومات التسجيل إلى خادم Eureka ، فإن القيمة الافتراضية صحيحة.
تفضل بزيارة http: // localhost: 8761 في متصفحك لعرض وصف الصورة لإدخال وحدة التحكم eureka
إنشاء مزود خدمة
يعتمد
<Rependency> <roupeD> org.springframework.cloud </rougiD> <intifactid> spring-cloud-starter-config </shintifactid> </premited> <reperence> <roupiD> org.springframework.cloud </roucidid> <roupl> org.springframework.cloud </groupId> <StifactId> ريببون من طراز الينابيع </insifactid> </premed>
تكوين المنفذ ، اسم مثيل Eureka ، وعنوان خدمة Eureka في Application.Yml
الخادم: المنفذ: 8080SPRING: التطبيق: الاسم: EK-Providereureka: المثيل: اسم المضيف: LocalHost العميل: Serviceurl: DefaultZone: http: // localhost: 8761/eureka/
إنشاء خدمة راحة
RestControllerPublic Class HelloconTroller {REquestMapping ("/hello") السلسلة العامة Hello (طلب httpservletrequest) {return "hello:" + request.getRequesturl () ؛ }}تمكين eureka client enoutation enableeurekaserver
@enableeurekaclient@springbootapplicationpublicpublic ekproviderapplication {public static void main (string [] args) {new SpringApplicationBuilder (ekproviderapplication.class) .run (args) ؛ }}بعد بدء التشغيل ، يمكنك أن ترى في وحدة التحكم Eureka أن مزود الخدمة قد سجل في Eureka
إنشاء متصل خدمة
يعتمد
<Rependency> <roupeD> org.springframework.cloud </rougiD> <intifactid> spring-cloud-starter-config </shintifactid> </premited> <reperence> <roupiD> org.springframework.cloud </roucidid> <roupl> org.springframework.cloud </groupId> <StifactId> ريببون من طراز الينابيع </insifactid> </premed>
تكوين المنفذ ، اسم مثيل Eureka ، وعنوان خدمة Eureka في Application.Yml
الخادم: المنفذ: 9000Spring: التطبيق: الاسم: Ek-invokeeureka: المثيل: اسم المضيف: العميل المحلي: Serviceurl: DefaultZone: http: // localhost: 8761/eureka/
اكتب خدمة راحة للاتصال بمزود الخدمة "/Hello"
@restController @configurationpublic class vokecontroller {bean@loadbalanced public resttemplate getRestTemplate () {return new resttemplate () ؛ } @requestmapping ("/invoke") سلسلة عامة invoke () {restTemplate restTemplate = getRestTemplate () ؛ return resttemplate.getForObject ("http: // ek-provider/hello" ، string.class) ؛ }}في الوضع التقليدي ، عادة ما نستخدم httpclient في Apache للاتصال بخدمة REST. نستخدم هنا Spring لتوفير مكون RestTemplate الذي يدعو خدمة REST. لا تتمتع RestTemplate نفسها بالقدرة على استدعاء الخدمات الموزعة ، ولكن بعد تعديل BreatTemplate Bean من خلال التعليق التوضيحي المتوازن ، فإن مثيل RestTemplate لديه القدرة على الوصول إلى الخدمات الموزعة ، وذلك بفضل مختلف المعترضات التي توفرها الربيع.
تمكين eureka client enoutation enableeurekaserver
@enableeurekaclient@springbootapplicationpublicpublic ekinvokeapplication {public static void main (string [] args) {new SpringApplicationBuilder (ekinvokeapplication.class) .run (args) ؛ }}بعد بدء التشغيل ، يمكنك أن ترى في وحدة التحكم في Eureka أن المتصل بالخدمة قد تم تسجيله في Eureka
ثم قم بالوصول إلى واجهة "استدعاء" لمكل الخدمة في المتصفح. العودة على النحو التالي
لخص
يحتفظ خادم Eureka بأحدث معلومات التسجيل من خلال رابط نبضات القلب ، والذي يتم تخزينه في الذاكرة.
يقوم مقدمو خدمات Eureka بالقيام بشكل أساسي:
يقوم المتصلون في خدمة Eureka بشكل أساسي:
عنوان رمز المصدر: https://github.com/xc564864894/springcloud/tree/master/eureka(٪E4٪B8٪80)
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.