Di blog sebelumnya, kami menempatkan file konfigurasi di layanan kami masing -masing, tetapi ada satu kerugian dalam melakukan ini. Setelah konfigurasi dimodifikasi, kita harus dimatikan dan kemudian memodifikasi file konfigurasi sebelum online. Jika ada beberapa layanan, dapat dimengerti untuk melakukan ini. Namun, jika ada ratusan layanan, manajemen konfigurasi terdistribusi diperlukan saat ini. Dan Spring Cloud Config dibuat untuk menyelesaikan masalah ini. Berikut ini adalah kombinasi GitLab untuk mengimplementasikan konstruksi pusat konfigurasi terdistribusi. Pusat konfigurasi konfigurasi Cloud Spring terdiri dari ujung server dan ujung klien.
Prasyarat: Buat file konfigurasi baru configserver-dev.properties di bawah proyek di gitlab
1. Konfigurasikan server
1. Tambahkan dependensi
<dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-config-server </stifactid> </dependency>
2. Aktifkan dukungan di kelas utama aplikasi
@EnableConfigServer
3. Konfigurasikan file application.yml
Server: Port: 8888 Spring: Aplikasi: Nama: Config Cloud: Config: Server: Git: URI: https://gitlab.xxx.com/xxxxx/xxxx.git # Konfigurasikan alamat repositori gitlab. Perhatikan bahwa path pencarian: /config-repo # Alamat relatif di bawah alamat repositori gitlab dapat dikonfigurasi dengan beberapa, penggunaan, dan split. Nama Pengguna: Nama Pengguna Anda # Gitlab Repository Account Password: Kata Sandi Anda # GitLab Repository Password
Catatan: Jika file konfigurasi ditempatkan di direktori root dari repositori Git, tidak perlu menggunakan parameter pencarian. File konfigurasi dalam contoh ini ada di direktori konfigurasi-repo, jadi gunakan parameter SearchPaths untuk meminta server konfigurasi untuk mencari subdirektori konfigurasi-repo.
4. Mulai server dan masukkan http: // localhost: 8888/configserver/dev/master di browser
{"name": "configServer", "profiles": ["dev"], "label": "master", "versi": "073CDA9CE85A3EED00E406F4EBCC4651EE4D9B19", "State": null, " "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties", "source": {"name": "chhliuxyh", "hello": "I'm the King of the World !!!"Anda dapat melihat bahwa sisi server sudah dapat membaca file konfigurasi dari GitLab. Anda dapat mengakses sumber daya di gitlab dalam formulir di bawah ini
/{application} /{profile} [ /{label}] /{plication}- {profile}.yml /{label}/{AppleCicy}- {profile}.yml /{property-{profile.yml /{plication- {properties /{properties /{pricyprofile.krofile.mlicy-wicy- {proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPerties /{proPiLIFILE /{proPerties /{proPerties /{proPiLICE /{proPerties /{profile /{Misalnya, masukkan: http: // localhost: 8888/configserver-dev.yml di browser, dan hasilnya adalah sebagai berikut:
Halo: Saya Raja Dunia !!! Nama: CHHLIUXYH Profil: Profil-Default
2. Konfigurasikan klien
1. Tambahkan dependensi pom
<dependency> <GroupId> org.springframework.cloud </groupid> <ArTifactId> Spring-cloud-starter-config </artifactid> </gandendency> <dependency> <groupid> org.spramework.boot </groupid> <t Artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <artifactid> <cept/org-boot-starter --wib </artifactid </artifactid </artifactid> <troffactid> <t ArtiFacTid>
2. Konfigurasikan file bootstrap.yml
Catatan: File konfigurasi di sini perlu ditempatkan di bootstrap.properties atau bootstrap.yml file, karena konfigurasi konfigurasi akan mendahului application.properties, dan pemuatan bootstrap.properties juga didahului oleh application.properties.
Server: Port: 8889 Spring: Aplikasi: Nama: ConfigServer # harus konsisten dengan awalan file konfigurasi. Misalnya, nama file konfigurasi kami di sini adalah configserver-dev.properties, jadi kami perlu mengonfigurasinya sebagai cloudserver cloud: config: uri: http: // localhost: 8888/// konfigurasikan profil URL dari server konfigurasi cloud spring: tentukan profil: master # Tentukan cabang repositori gitlab gitlab:
3. Verifikasi klien
Tambahkan pengontrol baru ke klien
paket com.chhliu.springcloud.config; impor org.springframework.beans.factory.annotation.value; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; impor org.springframework.cloud.context.config.annotation.refreshscope; impor org.springframework.web.bind.annotation.getmapping; impor org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @RefreshScope //Annotation @RefreshScope indicates that the Config client also refreshes the injected property value when the server configuration changes public class SpringcloudConfigClientApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudConfigClientApplication.class, args); } @Value ("$ {hello}") // Baca properti dalam file konfigurasi gitlab. Jika kami membaca nilainya, itu berarti bahwa klien adalah profil string pribadi OK; @GetMapping ("/hello") Public String Hello () {return this.profile; }}Kunjungi di browser: http: // localhost: 8889/halo, hasilnya adalah sebagai berikut:
Aku Raja Dunia !!!
Ini berarti bahwa klien sudah dapat memperoleh nilai dari server.
3. Dinamis Refresh
Perbarui Konfigurasi Konfigurasi Konfigurasi Cloud Musim Semi Tanpa Memulai Klien
1. Perbarui nilai properti yang sesuai dengan Hello di file konfigurasi configserver-dev.properties di repositori gitlab
2. Kunjungi http: // localhost: 8888/configserver/dev/master dan temukan bahwa konten sisi server telah diperbarui
3. Kirim permintaan posting ke klien conf http: // localhost: 8889/refresh, dan kembalikan 200 ok. Kunjungi http: // localhost: 8889/halo lagi, dapat dilihat bahwa nilai atribut baca telah diperbarui secara dinamis tanpa memulai kembali layanan klien.
PS: Untuk mencapai penyegaran dinamis, Anda perlu menambahkan starter berikut ke file pom
<dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-aktuator </stifactid> </dependency>
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.