Config Service File System

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)
1
2
3
4
5
6
7
8
# 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)

1
2
3
4
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password

Contoh Konfigurasi Database Dev (resource/config/db-dev.properties)

1
2
3
4
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password

Contoh Konfigurasi Database QA (resource/config/db-qa.properties)

1
2
3
4
driverClassName=com.mysql.jdbc.Driver
url=mysql:jdbc://localhost:3306/test
username=root
password=password

Contoh Konfigurasi Messaging (resource/config/mq.properties)

1
2
3
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 :

1
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 :

1
2
3
4
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 konfigurasi
    Contoh Konfigurasi aplikasi 1 Default(resource/app1/myapp.properties)
    1
    2
    foo=bar
    bar=bam

Contoh Konfigurasi aplikasi 1 untuk Developer Stage(resource/app1/myapp-dev.properties)

1
2
foo=bardev
bar=bam

Contoh Konfigurasi aplikasi 2 Default (resource/app2/myapp.properties)

1
2
foo=bar
bar=bam

  • Tambahkan konfigurasi untuk multiple aplikasi menggunakan spring.cloud.config.server.native.search-locations:

Berikut adalah contohnya :

1
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 :

1
2
3
4
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
    1
    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 :

1
2
3
http://localhost:8080/myapp/default
http://localhost:8080/myapp-default.json
http://localhost:8080/myapp-default.yml

Bagikan