Spring Cloud adalah kerangka layanan terdistribusi yang populer saat ini, dan menyediakan banyak komponen yang berguna. Misalnya: Pusat Konfigurasi, Penemuan Layanan Eureka, bus pesan, mekanisme sekering, dll.
Pusat konfigurasi relatif mendasar di antara banyak komponen awan pegas. Ini menyediakan manajemen file konfigurasi terpadu dan dapat dengan mudah beralih ke lingkungan yang tidak terputus.
Struktur spesifiknya adalah sebagai berikut:
Spring Cloud didasarkan pada Spring Boot, dan Spring Cloud tidak dapat dipisahkan dari Spring Boot, jadi proyek kami semuanya didasarkan pada Spring Boot.
Kami biasanya menempatkan file konfigurasi di git, yang mudah digunakan untuk kontrol versi. Selanjutnya, mari kita bicara tentang konstruksi pusat konfigurasi.
Konstruksi Pusat Konfigurasi
Pertama, perkenalkan BOM ketergantungan dari Spring Boot dan Spring Cloud:
<DependencyManagement> <ganteng> <dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> ketergantungan cloud-cloud </artifactid> <version> edgware.sr3 </versie> <peed> POM </type> <cope> Impor </scope> </Version> <peed> POM </type> <cope> Impor </scope> </Version> <peed> POM </type> <cope> Impor </scope> </Versi <groupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-dependencies </artifactid> <version> 1.5.9.release </version> <yype> pom </type> <scope> Impor </ scope> </dependency> </dependence
Di sini kita perlu melihat lebih dekat pada dokumentasi resmi. Versi Finchley dari Spring Cloud didasarkan pada Spring Boot 2.0 dan tidak dapat bekerja di bawah Spring Boot 1.5. Versi Edgware didasarkan pada 1,5 dan tidak berfungsi dengan baik di bawah 2.0. Setiap orang harus memperhatikan hal ini untuk menghindari masalah yang tidak perlu.
Di sini kami menggunakan Spring Cloud's Edgware dan Spring Boot Versi 1.5.
Kemudian tuangkan dependensi yang diperlukan sebagai berikut:
<Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <t Artifactid> Spring-boot-starter-web </t Artifactid> </dependency> <sependency> <Roupid> org.springframework.cloud </groupid> <ArtiFActid> CONDENCEICEF-CLOULENCES.CORICEF.CLOUD </Groupid> <ArtiFActid> CLONDENCEICEIF-CONDENCEIC
Akhirnya, tulis kelas mulai dari pusat konfigurasi, sebagai berikut:
@SpringbootApplication@enableConfigServerPublic Class ConfigServerApplication {public static void main (string [] args) {springApplication.run (configServerApplication.class, args); }}@EnableConfigServer menandai bahwa layanan ini adalah layanan pusat konfigurasi. Informasi spesifik dikonfigurasi dalam file application.properties:
#Server port server.port=9000# configuration file git address spring.cloud.config.server.git.uri=https://github.com/liubo-tech/spring-cloud-properties# configuration file temporary file directory spring.cloud.config.server.git.basedir=/d:/config-repo
Semua orang memahami port layanan dan alamat git, dan yang ketiga adalah direktori tempat file sementara dikonfigurasi. Setelah pusat konfigurasi dipanggil, pusat konfigurasi akan menarik file konfigurasi dari git dan cache secara lokal. Ini adalah direktori untuk cache konfigurasi, dan juga dapat dikonfigurasi tanpa konfigurasi dan menggunakan default sistem. Dengan cara ini, pusat konfigurasi diatur, dan cluster dapat dibangun melalui Nginx untuk membuatnya sangat tersedia.
Format file konfigurasi akses adalah sebagai berikut:
/{Application}/{profile} media/{label} media/{Application}-{profile}.yml/{label}/{Application}-{profile}.yml/{Pplication}.mrofile.yml/{Pplication-{ {profile}.properties/.inprofiledi dalam:
Panggilan Klien
Di masa lalu, file konfigurasi ditempatkan dalam proyek, yang membuatnya sangat merepotkan ketika mengganti lingkungan yang berbeda, dan beberapa informasi sensitif konfigurasi juga terpapar pada pengembang.
Ini dapat dihindari menggunakan pusat konfigurasi terpadu, mari kita lihat bagaimana klien memanggilnya.
Pertama, impor paket JAR yang harus diandalkan, sebagai berikut:
<Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArtiFacTId> Spring-boot-starter-web </t Artifactid> </dependency> <sependency> <trotifD> org.springframework.cloud </groupid> <Artifactid> CLONGENSIONTICEC.CONGICEC.CORICIC.CORICEC </groupid> <ArtiFActid> SPRINGINGENCEICEICEICEC. COMBRAMEK.cloud </groupid> <ArtiFActid> SPRINGINGENCEICEICEICEK
Selama toples klien konfigurasi Cloud Spring berada di bawah Classpath proyek, itu akan mendapatkan konfigurasi dari pusat konfigurasi ketika proyek dimulai, dan menentukan pusat konfigurasi melalui properti spring.cloud.config.uri dalam file konfigurasi bootstrap.
Ini membuat proyek klien harus memiliki file bootstrap.yml atau bootstrap.properties, jika tidak klien tidak akan memuat file konfigurasi dari pusat konfigurasi.
Kami membuat bootstrap.properties sebagai berikut:
#Configure alamat tengah spring.cloud.config.uri = http: // localhost: 9000
Tentukan alamat pusat konfigurasi. Dalam contoh di atas, kami menentukan 9000 port dari pusat konfigurasi. Kami mengonfigurasi nama aplikasi dalam file application.properties:
Spring.Application.name = EG-Config
Aplikasi kami disebut "EG-Config". Ketika proyek dimulai, file EG-Config akan dimuat dari pusat konfigurasi. Selanjutnya, mari kita buat contoh, buat nilai kacang dan suntikan dari pusat konfigurasi
@ComponentPublic Class myBean {@value ("$ {my.name}") name string pribadi; public string getName () {return name; } public void setName (name string) {this.name = name; }}Di mana nama akan memuat properti my.name dari pusat konfigurasi. Kelas startup adalah sebagai berikut:
@SpringbootApplicationPublic Class Application {public static void main (string [] args) {configurableApplicationContext ApplicationContext = springApplication.run (application.class, args); // Dapatkan kacang dan cetak bidang nama mybean bean = applicationContext.getBean (mybean.class); System.out.println (bean.getName ()); }} Setelah startup, hasil pencetakan konsol adalah sebagai berikut: test
Ini akan diperkenalkan di pusat konfigurasi. Untuk detailnya, silakan merujuk ke contoh proyek: https://github.com/liubo-tech/spring-cloud-config.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.