Skip to content

Latest commit

 

History

History
144 lines (109 loc) · 4.72 KB

NACOS-CONFIG-QUICK-START.md

File metadata and controls

144 lines (109 loc) · 4.72 KB

Nacos Config

First, you have to start a Nacos Server in backend , If you don't know steps, you can learn about quick start.

Suppose your Nacos Server is startup, you would add nacos-config-spring-boot-starter in your Spring application's dependencies :

    <dependencies>
        ...
        
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>${latest.version}</version>
        </dependency>
        
        ...
    </dependencies>

Note: Version 0.2.x.RELEASE is compatible with the Spring Boot 2.x and the Spring Boot 3.x. Version 0.1.x.RELEASE is compatible with the Spring Boot 1.x.

After that, you could define some configurations in application.properties:

nacos.config.server-addr=localhost:8848

nacos.config.server-addr attribute configures "${host}:${port}" of your Nacos Server

Then you could using @SpringBootApplication to annotate main class like normal SpringBoot Application and startup:

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

If you'd like to use "Distributed Configuration" features, ConfigService is a core service interface to get or publish config, you could use "Dependency Injection" to inject ConfigService instance in your Spring Beans.

@Service
public class ConfigServiceDemo {

    @NacosInjected
    private ConfigService configService;
    
    public void demoGetConfig() {
        try {
            String dataId = "{dataId}";
            String group = "{group}";
            String content = configService.getConfig(dataId, groupId, 5000);
        	System.out.println(content);
        } catch (NacosException e) {
            e.printStackTrace();
        }
    }
    ...
}

above code equals below one:

try {
    // Initialize the configuration service, and the console automatically obtains the following parameters through the sample code.
    String serverAddr = "{serverAddr}";
    String dataId = "{dataId}";
    String group = "{group}";
    Properties properties = new Properties();
    properties.put("serverAddr", serverAddr);
    ConfigService configService = NacosFactory.createConfigService(properties);
    // Actively get the configuration.
    String content = configService.getConfig(dataId, group, 5000);
    System.out.println(content);
} catch (NacosException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Endpoint

Nacos config starter support the implementation of Spring Boot actuator endpoints.

Prerequisite:

Adding nacos-config-spring-boot-actuator to your pom.xml in Nacos Config Project.

Then Configure your endpoint security strategy.

  • Spring Boot1.x
management.security.enabled=false
  • Spring Boot2.x or Spring Boot3.x
management.endpoints.web.exposure.include=*

To view the endpoint information, visit the following URLS:

Health Checks

nacos-config-spring-boot-actuator support the standard Spring Boot HealthIndicator as a production-ready feature , which will be aggregated into Spring Boot's Health and exported on HealthEndpoint that works MVC (Spring Web MVC) if it is available.

Suppose a Spring Boot Web application did not specify management.server.port(SpringBoot1.x using management.port), you can access http://localhost:{port}/actuator/health (SpringBoot1.x visit http://localhost:{port}/health) via Web Client and will get a response with JSON format is like below :

{
"status": "UP",
"details": {
    "nacosConfig": {
        "status": "UP"
    },
    "diskSpace": {
        "status": "UP",
        "details": {
            "total": 250140434432,
            "free": 52323512320,
            "threshold": 10485760
        }
    }
}
}

For more information about Nacos Spring, see Nacos Spring Project.

Relative Projects