في المدونة السابقة ، وضعنا ملفات التكوين في خدماتنا ، ولكن هناك عيب واحد في القيام بذلك. بمجرد تعديل التكوين ، يجب علينا إيقاف التشغيل ثم تعديل ملفات التكوين قبل الاتصال بالإنترنت. إذا كانت هناك خدمات قليلة ، فمن المفهوم القيام بذلك. ومع ذلك ، إذا كان هناك مئات الخدمات ، فستكون هناك حاجة إلى إدارة التكوين الموزعة في هذا الوقت. ويتم إنشاء Cloud Config لحل هذه المشكلة. فيما يلي مزيج من gitlab لتنفيذ بناء مركز تكوين موزع. يتكون مركز تكوين سحابة Spring Cloud من نهاية الخادم ونهاية العميل.
المتطلب السابق: إنشاء ملف تكوين جديد configserver-dev.properties ضمن المشروع في Gitlab
1. تكوين الخادم
1. إضافة التبعيات
<Rependency> <roupeD> org.springframework.cloud </rougiD> <intifactid> spring-cloud-config-server </shintifactid> </premed>
2. تمكين الدعم في الفئة الرئيسية للتطبيق
enableConfigServer
3. قم بتكوين ملف Application.YML
الخادم: المنفذ: 8888 Spring: Application: Config Cloud: Config: Server: GIT: URI: https://gitlab.xxx.com/xxxxx/xxxx.git # قم بتكوين عنوان مستودع gitlab. لاحظ أنه يمكن تكوين مسارات البحث: /config-repo # العنوان النسبي ضمن عنوان مستودع GitLab مع متعددة واستخدام وتقسيم. اسم المستخدم: كلمة مرور حساب اسم المستخدم # gitlab
ملاحظة: إذا تم وضع ملف التكوين في الدليل الجذر لمستودع GIT ، فلا داعي لاستخدام معلمة SearchPaths. يوجد ملف التكوين في هذا المثال في دليل config-repo ، لذا استخدم معلمة SearchPaths للمطالبة بخادم التكوين للبحث عن دليل التكوين repo.
4. ابدأ الخادم وأدخل http: // localhost: 8888/configserver/dev/master في المتصفح
{"name": "configserver" ، "prieffiles": ["dev"] ، "label": "master" ، "version": "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties" ، "المصدر": {"name": "chhliuxyh" ، "Hello": "أنا ملك العالم !!!يمكنك أن ترى أن جانب الخادم يمكنه بالفعل قراءة ملف التكوين من GITLAB. يمكنك الوصول إلى الموارد على gitlab في النموذج أدناه
/{application} /{profile} [ /{label}] /{application)-{profile)على سبيل المثال ، أدخل: http: // localhost: 8888/configserver-dev.yml في المتصفح ، والنتيجة هي كما يلي:
مرحبا: أنا ملك العالم !!! الاسم: ملف تعريف chhliuxyh: ملف تعريف الملف الشخصي
2. تكوين العميل
1. إضافة تبعيات POM
<Rependency> <roupeD> org.springframework.cloud </rougiD> <intifactid> spring-cloud-starter-config </shintifactid> </premited> <reperence> <roupiD> org.springframework.boot </rougiD>
2. تكوين ملف bootstrap.yml
ملاحظة: يجب وضع ملف التكوين هنا في ملف bootstrap.properties أو bootstrap.yml ، لأن تكوين التكوين سوف يسبق التطبيق.
الخادم: المنفذ: 8889 الربيع: التطبيق: الاسم: ConfigServer # يجب أن يكون متسقًا مع بادئة ملف التكوين. على سبيل المثال ، اسم ملف التكوين الخاص بنا هنا هو configserver-dev.properties ، لذلك نحتاج إلى تكوينه كـ ConfigServer Cloud: config: uri: http: // localhost: 8888 // configure the url the url the spring cloud config server: dev # profile label: master # حدد فرع مسترجع gitlab
3. تحقق من العميل
أضف وحدة تحكم جديدة إلى العميل
حزمة com.chhliu.springcloud.config ؛ استيراد org.springframework.beans.factory.annotation.value ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.SpringBootApplication ؛ استيراد org.springframework.cloud.context.config.annotation.refreshscope ؛ استيراد org.springframework.web.bind.annotation.getMapping ؛ استيراد org.springframework.web.bind.annotation.restController ؛ springBOOTAPPLICATION RESTCORNTROLLERREFRESHSCOPE // enoTation @refreshscope يشير إلى أن عميل التكوين يعمل أيضًا على تحديث قيمة العقار المحقونة عندما يغير تكوين الخادم الفئة العامة springcloudclientapplication {public static void main (string) {springapplication.run. } value ("$ {hello}") // اقرأ الخصائص في ملف تكوين gitlab. إذا قرأنا القيمة ، فهذا يعني أن العميل على ما يرام من ملف تعريف السلسلة الخاصة ؛ getMapping ("/hello") السلسلة العامة Hello () {return this.profile ؛ }}زيارة في المتصفح: http: // localhost: 8889/hello ، والنتيجة هي كما يلي:
أنا ملك العالم !!!
هذا يعني أن العميل يمكنه بالفعل الحصول على القيمة من الخادم.
3. تحديث ديناميكي
تحديث التكوينات التي أدارها سحابة الربيع السحابة دون إعادة تشغيل العميل
1. قم بتحديث قيمة الخاصية المقابلة لـ Hello في ملف تكوين configserver-dev.properties في مستودع gitlab
2. قم بزيارة http: // localhost: 8888/configserver/dev/master ووجد أنه تم تحديث المحتوى الجانبي للخادم
3. أرسل طلبًا منشورًا إلى عميل Conf http: // localhost: 8889/refresh ، وإرجاع 200 OK. تفضل بزيارة http: // localhost: 8889/hello مرة أخرى ، يمكن ملاحظة أن قيمة سمة القراءة قد تم تحديثها ديناميكيًا دون إعادة تشغيل خدمة العميل.
ملاحظة: لتحقيق تحديث ديناميكي ، تحتاج إلى إضافة المبدئ التالي إلى ملف POM
<Rependency> <roupeD> org.springframework.boot </rougiD> <artifactid> spring-boot-starter-actuator </insifactid> </preminent>
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.