下載和安裝
國內的軟體,去官網下就行了,下載好後到其 bin 目錄執行命令 startup.cmd -m standalone
服務就會啟動
瀏覽器訪問,能訪問到 nacos 介面
小試牛刀
-
工程匯入依賴
<!-- 當前服務註冊到 nacos 需要 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 當前服務如果需要呼叫別的服務就需要引入(如果不需要就無需引入) --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> <!-- 如果需要拉取 nacos 配置中心,需要加入這倆依賴(如果不需要就無需引入) --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
-
啟動類加註解
// 注意沒用 @EnableFeignClients,因為當前工程不需要發起遠端呼叫,只是一個示例服務,只要能夠註冊到 nacos 就行 @SpringBootApplication @EnableDiscoveryClient public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
-
讀取 nacos 配置檔案
@RestController @RefreshScope public class TestController { // 讀取配置檔案的 test.username 值 @Value("${test.username}") private String username; @GetMapping("/testGetConfig") public String testGetConfig(){ return username; } }
-
配置檔案,同 consul 一樣,也會有兩個
# application.yml,這裡配置工程自己的 server: port: 9002 profiles: active: dev # bootrsap.yml,這裡配置 nacos 相關的 spring: application: name: my-nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 # Nacos 服務註冊中心地址 config: server-addr: localhost:8848 # Nacos 配置中心地址 file-extension: yaml # 指定 yaml 格式的配置
-
啟動服務,重新整理 nacos 頁面,就能看到我們的服務了
-
建立配置,我們是 my-nacos-config-client 服務,環境是 dev,指定的格式是 yaml,當前工程就會到 nacos 拉取
my-nacos-config-client-dev.yaml
這個配置檔案 -
訪問測試
nacos 使用細節
- 註冊與發現的配置類:com.alibaba.cloud.nacos.NacosDiscoveryProperties
- 分散式配置中心的配置類:com.alibaba.cloud.nacos.NacosConfigProperties
- 服務分為持久例項和臨時例項
- 臨時(預設):資料儲存在記憶體中,客戶端主動傳送心跳到客戶端,5秒一次,連續 3 次(15s)心跳檢測失敗視為不健康,連續 6 次(30s)心跳檢測失敗剔除服務
- 持久:需要配置,持久化到磁碟中,服務端主動檢測客戶端心跳,20 秒一次,一次失敗就視為不健康
- 資料模型為三元模型:名稱空間(namespace,預設 public)、分組(group,預設 DEFAULT_GROUP)、服務(data id)