Spring Cloud เป็นเฟรมเวิร์กบริการกระจายที่ได้รับความนิยมในปัจจุบันและมีส่วนประกอบที่มีประโยชน์มากมาย ตัวอย่างเช่น: ศูนย์การกำหนดค่า, การค้นพบบริการยูเรก้า, บัสข้อความ, กลไกฟิวส์, ฯลฯ
ศูนย์การกำหนดค่าค่อนข้างพื้นฐานในหมู่ส่วนประกอบมากมายของสปริงคลาวด์ ให้การจัดการไฟล์การกำหนดค่าแบบครบวงจรและสามารถเปลี่ยนเป็นสภาพแวดล้อมที่ไม่หยุดหย่อนได้อย่างง่ายดาย
โครงสร้างเฉพาะของมันมีดังนี้:
สปริงคลาวด์ขึ้นอยู่กับการบูตฤดูใบไม้ผลิและสปริงคลาวด์แยกออกไม่ได้จากสปริงบูตดังนั้นโครงการของเราทั้งหมดขึ้นอยู่กับการบูตฤดูใบไม้ผลิ
เรามักจะวางไฟล์การกำหนดค่าบน Git ซึ่งใช้งานง่ายสำหรับการควบคุมเวอร์ชัน ถัดไปพูดคุยเกี่ยวกับการสร้างศูนย์การกำหนดค่า
การก่อสร้างศูนย์การกำหนดค่า
ก่อนอื่นแนะนำ BOM การพึ่งพาของสปริงบูตและสปริงคลาวด์:
<การพึ่งพาการจัดการ> <การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.cloud </groupId> <ratifactid> สปริงคลาวด์-พึ่งพาอาศัยกัน </artifactid> <persion> edgware.sr3 </เวอร์ชัน> <ply> pom </type> <RoupID> org.springframework.boot </groupId> <ratifactid> สปริง-พึ่งพาอาศัยกันดี </artifactid> <cersion> 1.5.9.release </เวอร์ชัน> <ply> pom </type> <mope> นำเข้า </pope>
ที่นี่เราต้องดูเอกสารอย่างเป็นทางการอย่างใกล้ชิด สปริงคลาวด์รุ่น Finchley ขึ้นอยู่กับ Spring Boot 2.0 และไม่สามารถทำงานได้ภายใต้ Spring Boot 1.5 เวอร์ชัน Edgware ขึ้นอยู่กับ 1.5 และไม่ทำงานอย่างถูกต้องภายใต้ 2.0 ทุกคนควรให้ความสนใจกับเรื่องนี้เพื่อหลีกเลี่ยงปัญหาที่ไม่จำเป็น
ที่นี่เราใช้ Edgware และ Spring Boot เวอร์ชัน 1.5 ของ Spring Cloud
จากนั้นเทลงในการพึ่งพาที่จำเป็นดังนี้:
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Web </artifactid> </dependency> <การพึ่งพา </predency> </dependencies>
ในที่สุดเขียนคลาสเริ่มต้นของศูนย์การกำหนดค่าดังต่อไปนี้:
@springbootapplication@enableConFigServerPublic คลาส configserverapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (configserverapplication.class, args); -@EnableConFigServer ทำเครื่องหมายว่าบริการนี้เป็นบริการศูนย์การกำหนดค่า ข้อมูลเฉพาะได้รับการกำหนดค่าในไฟล์แอปพลิเคชันไฟล์:
#Server พอร์ตเซิร์ฟเวอร์พอร์ต = 9000# ไฟล์การกำหนดค่าที่อยู่ git ที่อยู่ Spring.cloud.config.server.git.uri = https: //github.com/liubo-tech/spring-cloud-properties# การกำหนดค่าไฟล์ชั่วคราว
ทุกคนเข้าใจพอร์ตบริการและที่อยู่ GIT และที่สามคือไดเรกทอรีที่กำหนดค่าไฟล์ชั่วคราว หลังจากเรียกศูนย์การกำหนดค่าศูนย์การกำหนดค่าจะดึงไฟล์การกำหนดค่าจาก Git และแคชไว้ในเครื่อง นี่คือไดเรกทอรีสำหรับแคชการกำหนดค่าและสามารถกำหนดค่าได้โดยไม่ต้องกำหนดค่าและใช้ค่าเริ่มต้นของระบบ ด้วยวิธีนี้ศูนย์การกำหนดค่าจะถูกตั้งค่าและคลัสเตอร์สามารถสร้างผ่าน NGINX เพื่อให้สามารถใช้งานได้สูง
การเข้าถึงรูปแบบไฟล์การกำหนดค่ามีดังนี้:
/{APPLICATION/ESPROFILE} [{label} เหมือนกัน/{APPLICATION-{profile}.yml/ {label}/ {Application}- {profile}.yml/ {Application} -profile}.yml/ {Application}ใน:
การโทรของลูกค้า
ในอดีตไฟล์การกำหนดค่าถูกวางไว้ในโครงการซึ่งทำให้มันลำบากมากเมื่อเปลี่ยนสภาพแวดล้อมที่แตกต่างกันและข้อมูลที่ละเอียดอ่อนของการกำหนดค่าบางอย่างก็สัมผัสกับนักพัฒนา
สิ่งนี้สามารถหลีกเลี่ยงได้โดยใช้ศูนย์การกำหนดค่าแบบครบวงจรมาดูกันว่าไคลเอนต์โทรหาอย่างไร
ขั้นแรกให้นำเข้าแพ็คเกจ JAR ที่ต้องพึ่งพาดังนี้:
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupid> <ratifactid> Spring-Boot-Starter-Web </artifactid> </derpendency> <การพึ่งพา </predency> </dependencies>
ตราบใดที่ JAR ของไคลเอนต์ Spring Cloud Config อยู่ภายใต้ ClassPath ของโครงการจะได้รับการกำหนดค่าจากศูนย์การกำหนดค่าเมื่อโครงการเริ่มต้นและระบุศูนย์การกำหนดค่าผ่านคุณสมบัติ Spring.cloud.config.uri ในไฟล์การกำหนดค่า bootstrap
สิ่งนี้ทำให้โครงการของลูกค้ามีไฟล์ bootstrap.yml หรือ bootstrap.properties มิฉะนั้นไคลเอนต์จะไม่โหลดไฟล์การกำหนดค่าจากศูนย์การกำหนดค่า
เราสร้าง bootstrap.properties ดังนี้:
#configure ที่อยู่กลาง Spring.cloud.config.uri = http: // localhost: 9000
ระบุที่อยู่ของศูนย์การกำหนดค่า ในตัวอย่างข้างต้นเราระบุ 9000 ของพอร์ตของศูนย์การกำหนดค่า เรากำหนดค่าชื่อของแอปพลิเคชันในแอปพลิเคชันไฟล์ properties:
Spring.application.name = eg-config
แอปพลิเคชันของเราเรียกว่า "eg-config" เมื่อโครงการเริ่มต้นไฟล์ EG-Config จะถูกโหลดจากศูนย์การกำหนดค่า ถัดไปเรามาสร้างตัวอย่างสร้างถั่วและค่าฉีดจากศูนย์การกำหนดค่า
@componentpublic คลาส mybean {@value ("$ {my.name}") ชื่อสตริงส่วนตัว; สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; -ที่ชื่อจะโหลดคุณสมบัติ my.name จากศูนย์การกำหนดค่า คลาสเริ่มต้นมีดังนี้:
@springbootapplicationpublic คลาสแอปพลิเคชัน {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {configurableapplicationcontext applicationcontext = springapplication.run (application.class, args); // รับถั่วและพิมพ์ฟิลด์ชื่อ MyBean Bean = ApplicationContext.getBean (myBean.class); System.out.println (bean.getName ()); - หลังจากเริ่มต้นผลลัพธ์ของการพิมพ์คอนโซลมีดังนี้: test
สิ่งนี้จะถูกนำมาใช้ในศูนย์การกำหนดค่า สำหรับรายละเอียดโปรดดูตัวอย่างโครงการ: https://github.com/liubo-tech/spring-cloud-config
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น