Philipp Claßen
Philipp Claßen

Reputation: 44009

Fail fast if a Spring application cannot connect to its config server

Consider you have a Spring application that gets its configuration from a config server. If it cannot connect to the config server, the application will continue to start but as all configurations are missing, it will eventually fail with a potentially misleading error.

Is it possible to configure Spring, so it immediately aborts when it cannot connect to its config server during startup?

Upvotes: 12

Views: 15469

Answers (2)

Captain Man
Captain Man

Reputation: 7745

Set spring.cloud.config.failFast to true in your bootstrap.yml or bootstrap.properties file. Also, you can add -Dspring.cloud.config.failFast=true to the JVM arguments.

From the documentation

Config Client Fail Fast

In some cases, it may be desirable to fail startup of a service if it cannot connect to the Config Server. If this is the desired behavior, set the bootstrap configuration property spring.cloud.config.failFast=true and the client will halt with an Exception.

Upvotes: 14

Issam El-atif
Issam El-atif

Reputation: 2496

You can achieve that by using spring cloud Spring Cloud Config Serverand Spring Cloud Config Client components.

1. Spring Cloud Config Server

The Server provides an HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content). The server is easily embeddable in a Spring Boot application using the @EnableConfigServer annotation. So this app is a config server:

//ConfigServer.java
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServer.class, args);
    }
}


2. Spring Cloud Config Client

A Spring Boot application can take immediate advantage of the Spring Config Server (or other external property sources provided by the application developer), and it will also pick up some additional useful features related to Environment change events.

Then in the config client side you can configure fail fast by setting the bootstrap configuration property spring.cloud.config.failFast=true

Spring cloud documentation Config Client Fail Fast

Upvotes: 8

Related Questions