注意:以下主要演示動態配置
Nacos 是什麼?
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母簡稱,一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。
Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。
什麼是動態配置?
舉個例子,比如application.yml 中寫的配置需要修改,那麼我們一般會修改代碼,然後打包鏡像部署服務。我們有沒有一種方案,直接在程序運行時修改配置呢?有,那就是動態配置。
springboot集成Nacos
- 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
- 配置Nacos地址 application.yaml
spring:
application:
name: nacos-config-client
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yaml
- 啓動類添加註解
@SpringBootApplication
@NacosPropertySource(dataId = "Test", autoRefreshed = true)
public class NacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigApplication.class, args);
}
}
- 程序中使用
@RestController
@RequestMapping("config")
public class ConfigController {
@NacosValue(value = "${userName:zhang}", autoRefreshed = true)
private String userName;
@RequestMapping(value = "/get", method = RequestMethod.GET)
@ResponseBody
public String get() {
return userName;
}
}
- 測試
總結
動態配置的原理,等我看看源碼。
https://blog.csdn.net/wangliangluang/article/details/127040023