Membuat Config Service yang berisi konfigurasi 1 service
Buat project dengan spring initializr.
Menambahkan dependency spring-cloud-config-server.
Menambah anotasi @EnableConfigServer pada main class.
Konfigurasi config service (resource/application.properties)
Java
Copy
# Konfigurasi Port
server.port=8080
# Memberitahu bahwa file konfigurasi berada dalam 1 project
spring.profiles.active=native
# json pretty print
spring.jackson.serialization.indent-output=true
Membuat File Konfigurasi
Selanjutnya kita akan membuat beberapa file konfigurasi. Semisal kita akan membuat konfigurasi database dan konfigurasi messaging. Di setiap konfigurasi tersebut kita juga dapat menambahkan profile, semisal untuk database kita dapat membuat untuk profile development dan profile qa. File file konfigurasi nantinya tersebut akan disimpan dalam di folder resource/config.
Contoh Konfigurasi Database (resource/config/db.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password
Contoh Konfigurasi Database Dev (resource/config/db-dev.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password
Contoh Konfigurasi Database QA (resource/config/db-qa.properties)
Java
Copy
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password
Contoh Konfigurasi Messaging (resource/config/mq.properties)
Java
Copy
brokeurl=localhost:5672
username=guest
password=guest
Kemudian coba jalankan config service.
Spring Cloud Config menyediakan API untuk konfigurasi yang disimpan olehnya. Untuk mengaksesnya dapat menggunakan endpoint berikut :
Java
Copy
http://localhost:8080/{name}/{profile}/{label}
Keterangan :
name berarti nama dari servicenya.
profile berarti profile dari servicenya. Biasanya setiap service memiliki beberapa profile seperti dev, staging, deploy.
label berati label tambahan
Contoh enpoint yang dapat di akses :
Java
Copy
http://localhost:8080/db/default
http://localhost:8080/db/dev
http://localhost:8080/db/qa
http://localhost:8080/mq/default
Membuat Config Service yang berisi lebih dari konfigurasi 1 service
Setelah kita membuat config service dengan 1 konfigurasi service, kita akan coba menambahkan beberapa konfigurasi aplikasi pada config service kita. Karena pada dasarnya config service ini yang akan menghandle file file konfigurasi dari bebagai microservice.
Buat File konfigurasiContoh Konfigurasi aplikasi 1 Default(resource/app1/myapp.properties)
Java
Copy
foo=barbar=bam
Contoh Konfigurasi aplikasi 1 untuk Developer Stage(resource/app1/myapp-dev.properties)
Java
Copy
foo=bardevbar=bam
Contoh Konfigurasi aplikasi 2 Default (resource/app2/myapp.properties)
Java
Copy
foo=barbar=bam
Tambahkan konfigurasi untuk multiple aplikasi menggunakan spring.cloud.config.server.native.search-locations:
Berikut adalah contohnya :
Java
Copy
spring.cloud.config.server.native.search-locations:classpath:/config, classpath:/app1, classpath:/app2
Nama folder konfigurasi ditulis setelah classpath:/ . Dalam konteks ini classpath berada di direktori src/main/resource.
Untuk dapat melihat hasilnya anda dapat mengakses beberapa url berikut :
Java
Copy
http://localhost:8080/myapp/default
http://localhost:8080/myapp/dev
http://localhost:8080/myapp-default.json
http://localhost:8080/myapp-dev.json
Override value konfigurasi
Kita dapat mengoverride konfgurasi yang identik, semisal untuk file resource/app1/myapp.properties dan resource/app2/myapp.properties. Kedua file konfigurasi tersebut sama-sama memiliki parameter bernama foo. Apabila anda ingin mengoverride value dari foo tersebut, dapat dilakukan dengan beberapa langkah berikut.
Tambahkan konfigurasi untuk override konfigurasi
Java
Copy
spring.cloud.config.server.overrides.<nama-parameter>=<value>
Pada script diatas ada 2 nilai yang harus diisi yaitu nama-parameter yang akan di override dan value dari parameter tersebut
Untuk dapat melihat hasilnya anda dapat mengakses beberapa url berikut :
Java
Copy
http://localhost:8080/myapp/default
http://localhost:8080/myapp-default.json
http://localhost:8080/myapp-default.yml