Config Server tập trung config cho nhiều service — thay vì mỗi service tự giữ application.yml, tất cả đọc từ 1 nguồn chung, thường là Git repo (config được version, review, audit qua commit).
Server: dependency spring-cloud-config-server + @EnableConfigServer, trỏ spring.cloud.config.server.git.uri đến repo chứa file config.
Client: khai spring.config.import: configserver:http://config:8888 (cách hiện tại — thay bootstrap.properties cũ) → app kéo config lúc startup theo quy ước {application}-{profile}.yml.
Refresh không cần restart: đổi config trong Git → gọi POST /actuator/refresh trên service (bean gắn @RefreshScope được tạo lại với giá trị mới), hoặc Spring Cloud Bus (qua Kafka/RabbitMQ) broadcast refresh cho cả cụm.
2026: trên Kubernetes, nhiều team thay bằng ConfigMap/Secret; Config Server vẫn mạnh khi cần config theo Git-flow, chạy ngoài K8s, hoặc secret backend qua Vault.
Config Server centralises configuration for many services — instead of each service keeping its own application.yml, all read from one shared source, usually a Git repo (config becomes versioned, reviewed, audited via commits).
Server: the spring-cloud-config-server dependency + @EnableConfigServer, pointing spring.cloud.config.server.git.uri at the config repo.
Client: declare spring.config.import: configserver:http://config:8888 (the current approach — replacing the old bootstrap.properties) → the app pulls config at startup following the {application}-{profile}.yml convention.
Refresh without restart: change config in Git → call POST /actuator/refresh on the service (beans annotated @RefreshScope are recreated with new values), or Spring Cloud Bus (over Kafka/RabbitMQ) broadcasts the refresh to the whole fleet.
2026: on Kubernetes many teams use ConfigMaps/Secrets instead; Config Server remains strong for Git-flow config management, non-K8s fleets, or Vault-backed secrets.