يمكن القول أن حوكمة الخدمة هي الوحدة النمطية الأساسية والأساسية في بنية الخدمات الصغيرة. يتم استخدامه بشكل أساسي لتحقيق التسجيل الآلي واكتشاف حالات الخدمات الدقيقة المختلفة.
Spring Cloud Eureka هو جزء من مجموعة Spring Cloud Netflix Microservices ، والتي هي مسؤولة بشكل أساسي عن استكمال وظائف حوكمة الخدمة في بنية الخدمات الصغيرة.
تستخدم هذه المقالة أمثلة صغيرة بسيطة لمشاركة كيفية إدارة الخدمة من خلال Eureka:
=============== أنا الخط الفاصل الرائع =====================================
1. بناء مركز تسجيل الخدمة
قائمة أولا بنية الدليل الكامل:
عملية البناء هي كما يلي:
1. إنشاء مشروع Maven: Eureka (تم حذف تطبيق محدد)
2. تعديل ملف POM وإدخال التبعيات
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/xsd/maven-4.0.0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> com.sam </rougeid> <sropactid> eureka </stifactid> <StifactId> Spring-boot-starter-parent </stifactid> <الإصدار> 1.5.1.Release </version> </parent> <properties> <StifactId> تعبيد السحابة النابضة </artifactId> <sople> camden.sr6 </soph> <type> pom </type> <scope> استيراد </scope> </respendency> </rependency> </respencymanagement> <التبعية> <!- <StifactId> spring-cloud-starter-eureka-server </shintifactid> </premeency> </reperence> </
3. إنشاء فئة بدء التشغيل
/** * * * enableeurekaserver * مركز تسجيل الخدمة المستخدم لتحديد أن المشروع هو eureka */@enableeurekaserver@springbootapplicationpublication class eurekaapp {public static void main (string [] args) {springapplication }} 4. تكوين ملف Application.Properties
#اطلب من خادم رقم منفذ خدمة tomcat leureka.client.serviceurl.defaultzone = http: // $ {eureka.instance.hostname}: $ {server.port}/eureka 5. ابدأ الخدمة والوصول إليها ، وسنرى صورة مثل هذه:
2. قم بتسجيل مزود خدمة
قائمة أولا بنية الدليل الكامل:
عملية البناء هي كما يلي:
1. إنشاء مشروع Maven: Hello-Service (تم حذف تطبيق محدد)
2. تعديل ملف POM وإدخال التبعيات
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/xsd/maven-4.0.0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> com.sam </rougiD> <ChotifactId> hello-service </stifactid> <roughid> org.springframework.boot </rougiD> <StifactId> Spring-boot-starter-parent </shintifactid> <الإصدار> 1.5.1.Release </version> </parent> <PereTies> <javaversion> 1.8 </javaversion> <roupl> org.springframework.cloud </groupId> <StifactId> يعاني من الاعتماد على الربيع </intifactid> <sople> camden.sr6 </version> <type> pom </type> <scope> الاستيراد </scope> </reperence> </rependency <roupl> org.springframework.cloud </groupId> <Stifactid> spring-cloud-starter-eureka </stifactid> </premited> </sependency> </sependencies> </project>
3. إنشاء فئة بدء التشغيل
/***** enablediscoveryClient* دع الخدمة تستخدم Eureka Server* لتنفيذ تسجيل الخدمة و Discovery**/@enableScoveryClient@SpringBootApplicationPublication HelloApp {public Static Void Main (string [] args) {springapplication.run (hellapp.class ، args) ؛ }}4. إنشاء وحدة تحكم
RestControllerPublic Class HelloconTroller {logger logger = loggerfactory.getLogger (HelloconTroller.Class) ؛ autowired DiscoveryClient DiscoveryClient ؛ requestmapping ("/hello") السلسلة العامة Hello () {serviceinstance مثيل = discoveryclient.getlocalserviceInstance () ؛ // print service id logger.info ("*********" + مثيل. getServiceId ()) ؛ العودة "مرحبًا ، هذه هي الخدمة مرحبًا" ؛ }} 5. تكوين ملف Application.Properties
server.port = 9090#قم بتعيين اسم الخدمة spring.application.name = hello-service#قم بتعيين عنوان URL لمركز تسجيل الخدمة. يجب أن تسجل هذه الخدمة نفسها في مركز تسجيل الخدمة eureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka
6. ابدأ واختبار
1.) بعد البدء ، ستحصل وحدة التحكم في الخدمة على هذه الكلمة (تمثل xxx اسم جهاز الكمبيوتر الخاص بك)
انسخ الرمز على النحو التالي: مثيل مسجل Hello-Service/XXX: Hello-Service: 9090 مع up up (النسخ المتماثل = خطأ)
سيتم طباعة الكلمات التالية على وحدة التحكم Eureka (تمثل xxx اسم الكمبيوتر الخاص بك)
انسخ الرمز على النحو التالي: مثيل مسجل Hello-Service/XXX: Hello-Service: 9090 مع up up (النسخ المتماثل = خطأ)
2.) زيارة LocalHost: 1111 مرة أخرى وستجد أن هناك خدمات مسجلة في مركز التسجيل
3. اكتشاف الخدمة والاستهلاك
هيكل الدليل الكامل على النحو التالي:
عملية البناء:
1. إنشاء مشروع Maven (تم حذف تطبيق محدد)
2. تعديل ملف POM وإدخال التبعيات
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/xsd/maven-4.0.0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> com.sam </rougiD> <ContifactId> hello-consumer </stifactid <roughid> org.springframework.boot </rougiD> <StifactId> Spring-boot-starter-parent </shintifactid> <الإصدار> 1.5.1.Release </version> </parent> <PereTies> <javaversion> 1.8 </javaversion> <roupl> org.springframework.cloud </groupId> <StifactId> تعتمد على السحابة الزبدية </insifactid> <sople> camden.sr6 </version> <type> pom </type> <scope> الاستيراد </scope> <roupl> org.springframework.cloud </groupId> <StifactId> spring-cloud-starter-eureka </artifactid> </premined> <!-يتم استخدام تبعية الشريط لتحقيق موازنة التحميل. نحن فقط نستخدمه هنا ، لذلك لن نقدمه في مكان آخر-> <redency> <roupiD> org.springframework.cloud </rougiD> <StifactId>
هناك المزيد من تبعيات الشريط أكثر من مقدمي خدمات الخدمة Hello-Service هنا
3. إنشاء فئة بدء التشغيل
enableScoveryClient@SpringBootAppPlicationPublicpublic Class consumerApp {//@bean يتم تطبيقه على الطريقة ويستخدم لتعيين قيمة إرجاع الطريقة لتكون bean@loadbalanced //@loadBalanced لتحقيق موازنة التحميل public resttemplate () {resttemplate () ؛ } public static void main (string [] args) {springapplication.run (consumerapp.class ، args) ؛ }}يجب أيضًا استخدام enablediscoveryClient هنا للسماح للخدمة باستخدام خادم Eureka لتحقيق تسجيل الخدمة واكتشافها
4. إنشاء وحدة تحكم
RestControllerPublic Class ClasseRoSontroller {// The RestTemplate enjected هنا هو مثيل تم تكوينه عبر bean في com.sam.consumerAppeAupaired RestTemplate ؛ requestmapping ("/hello-consumer") السلسلة العامة Helloconsumer () {// استدعاء خدمة Hello-Service ، لاحظ أن اسم الخدمة يستخدم هنا ، وليس IP+Port RestTemplate.getForObject ("http: // hello-service/hello" ، string.class) ؛ العودة "مرحبا المستهلك الانتهاء !!!" ؛ }}5. تكوين ملف Application.Properties
server.port = 9999spring.application.name = hello-consumereureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka#مشروع التكوين هنا هو نفسه مزود الخدمة hello-service
6. ابدأ ، اختبار 1.) ابدأ يوريكا. من أجل إظهار تأثير المسؤولية عن التوازن ، تبدأ خدمة Hello-Service خدمتين. الخطوات المحددة لبدء خدمتين هي كما يلي
ما سبق هو خطوة بدء التشغيل من Hello-Service1 ، مع رقم المنفذ 9090 ؛ يتم تعيين نفس الطريقة على Hello-Service2 ، مع رقم المنفذ 9091 (تم حذف التنفيذ المحدد).
2.) ابدأ مرحبا المستهلك
3.) قم بزيارة http: // localhost: 1111/مرة أخرى وستجد أن هناك خدمتان مرشحتان (أرقام الموانئ هي 9090 و 9091)
4.) بعد زيارة http: // localhost: 9999/hello-consumer عدة مرات ، ستجد أن Hello-Service1 و hello-service2 سيتم استدعاؤهم (تم تحقيق المسؤولية عن التوازن) ، ويمكنك تأكيد المحتوى من خلال وحدة التحكم في الاثنان (تذكر أن لدينا loggrologger.info ( نعم ، هذه هي الطباعة)
4. ملخص
الأمثلة المذكورة أعلاه تدرك حوكمة الخدمة الأساسية:
ملاحظة: اسمحوا لي أن أشرح هنا أن IDE التي أستخدمها هي SPRING Tool Suite ، وهي النسخة المخصصة من Spring Eclipse ، والتي هي مريحة بالنسبة لنا لاستخدام الربيع للتطوير. يمكن للأصدقاء المهتمين التعرف على ذلك على بايدو.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.