Skip to content

Latest commit

 

History

History
144 lines (109 loc) · 4.66 KB

NACOS-CONFIG-QUICK-START.md

File metadata and controls

144 lines (109 loc) · 4.66 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. 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
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