ملخص
استخدم مثالًا بسيطًا لإظهار الاستخدام الأساسي لـ Eureka و Ribbon في Spring Cloud.
الإصدار والبيئة
بناء خادم eureka
في Spring Cloud ، يمكنك استخدام Eureka لإدارة الخدمات الدقيقة ، ويمكن تسجيل الخدمات الصغيرة في Eureka.
أولاً ، يمكنك استخدام Idea's Spring Initialzr لإنشاء مركز تسجيل خادم Eureka.
قم بتعديل ملف Application.Properties وأضف المحتوى التالي
spring.application.name = eureka-server eureka.instance.hostname = localhost eureka.client.register-with-eureka = false eureka.client.fetch-registry = false server.port = 8881
أضف @EnableEurekaServer التعليق التوضيحي إلى ServerApplication فئة بدء التشغيل التي تم إنشاؤها بواسطة SPRING BOOT بالنسبة لنا
package com.springcloud.eureka ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication ؛ استيراد ؛ org.springframework.cloud.netflix.eureka.server.enableeurekaserver ؛@enableeurekaserver@springbootapplicationpublication class serverapplication {public static void main (string [] args) {springapplication.run (serverapplication.class) ؛ }}أدخل http: // localhost: 8881/في متصفحك
يمكنك رؤية الواجهة التالية:
يمكنك أن ترى أن الخدمة لم يتم تسجيلها بعد. في هذه المرحلة ، تم بناء مركز بسيط لتسجيل الخدمات المجهرية.
كتابة مستخدمي الخدمات المجهرية
بعد ذلك ، استخدم REST لإنشاء واجهة خدمة microservice وتسجيلها في مركز التسجيل. لا يزال يستخدم Spring Initialzr لبناء مشروع جديد. الاستخدام هو نفسه على النحو الوارد أعلاه.
لاحظ أنه في هذه المرة ، تحتاج إلى التحقق من مكون Eureka Discovery . بدلا من Eureka Server .
قم بتعديل ملف Application.Properties وأضف المحتوى التالي:
spring.application.name = مستخدم خادم
استخدم التعليق التوضيحي @EnableDiscoveryClient في فئة UserApplication التي ينشئها Spring Boot لنا.
حزمة com.springcloud ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframewework.boot.autoconfigure.springbootapplication ؛ eSring org.springframework.cloud.discovery.enabilitiSclient ؛ public static void main (string [] args) {springapplication.run (userapplication.class ، args) ؛ }}إنشاء واجهة Microservice كاملة الراحة.
حزمة com.springcloud ؛ استيراد org.springframework.web.bind.annotation.getMapping ؛ استيراد org.springframework.web.bind.annotation.restController ؛ @restControllerPublic usercontroller }}
بعد تشغيل userapplication ، تفضل بزيارة http: // localhost: 8881/مرة أخرى
ستجد أن خدمة المستخدم قد تم تسجيلها.
كتابة أمر الخدمات المجهرية
بعد ذلك ، نقوم بإنشاء خدمة microservice ونصل إلى الواجهة في الخدمات الدقيقة للمستخدم.
لا يزال يستخدم Spring Initialzr لبناء مشروع جديد. يمكن نشر الخدمات المجهرية للمستخدم على آلات متعددة. عندما يصل العميل إلى هذه الخدمة ، يمكن توجيه الطلب إلى أي جهاز مع نشر خدمة المستخدم. لذلك ، يحتاج العميل إلى استخدام خوارزمية التوجيه لجدولة خدمة المستخدم. في Spring Cloud ، يمكنك استخدام مكونات الشريط للقيام بتوجيه العميل. سيذهب Ribbon إلى مركز تسجيل الخدمة للحصول على قائمة الخدمة من أجل الاتصال بالخدمة المقابلة.
هذه المرة ، بالإضافة إلى التحقق من مكون Eureka Discovery . تحتاج أيضًا إلى التحقق من Ribbon .
قم بتعديل ملف Application.Properties وأضف المحتوى التالي:
spring.application.name = order server.port = 8883 eureka.client.service-url.defaultzone = http: // localhost: 8881/eureka/
أضف التكوين التالي إلى فئة OrderApplication التي تم إنشاؤها بواسطة Spring Boot .
package com.springboot ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication ؛ import org.springframework.cloud.client.discovery.enablectoveryclient ؛ org.springframework.cloud.client.loadbalancer.loadbalanced ؛ استيراد org.springframework.context.annotation.bean ؛ استيراد org.springframework.web.client.resttemplate RestTemplate () ؛ } public static void main (string [] args) {springapplication.run (orderapplication.class ، args) ؛ }} منذ استخدام الشريط ، يجب استخدام التعليقات التوضيحية @LoadBalanced هنا.
اكتب OrderController .
package com.springboot ؛ استيراد org.springframework.beans.factory.annotation.autowired ؛ استيراد org.springframework.web.bind.annotation.getmapp org.springframework.web.client.restTemplate ؛ @RestControllerPublic orderController {autowired private resttemplate resttemplate ؛ getMapping ("/getorderuser") السلسلة العامة getorderuser () {resttemplate.getForentity ("http: // user/getUser" ، string.class) .getBody () ؛ }} بعد تشغيل OrderApplication ، تفضل بزيارة http: // localhost: 8881/
ستجد أن خدمة الطلب قد تم تسجيلها أيضًا في مركز التسجيل.
بعد ذلك ، نصل إلى طريقة getOrderUser في OrderController ونطلق المكالمة إلى طريقة getUser الخاصة بـ UserController .
أدخل: http: // localhost: 8883/getorderuser
يمكنك أن ترى أنه يعود: أنا قائمة المستخدمين.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.