Consider an example of making a configuration change in a microservice. Let's assume that there are five instances of Microservice A running in production. We would need to make an emergency configuration change. For example, let's make a change in localconfig-repo/microservice-a.properties:
application.message=Message From Default Local
Git Repository Changed
For Microservice A to pick up this configuration change, we need to invoke a POST request on http://localhost:8080/refresh. The following command can be executed at command prompt to send a POST request:
curl -X POST http://localhost:8080/refresh
You will see the configuration change reflected at http://localhost:8080/message. The following is the response from the service:
{"message":"Message From Default Local Git Repository Changed"}
We have five instances of Microservice A running. The change in configuration is reflected only for the instance of the Microservice A where the URL is executed. The other four instances will not receive the configuration change until the refresh request is executed on them.
If there are a number of instances of a microservice, then executing the refresh URL for each instance becomes cumbersome since you would need to do this for every configuration change.