Cloud Alibaba --Nacos
簡單一句話:Nacos就是注冊中心 + 配置中心的組合,相當於Eureka + config + Bus;
Nacos官網:https://nacos.io/zh-cn/docs/what-is-nacos.html
下載安裝:github下載太慢,推薦百度網盤下載(1.1.4):
zip:
鏈接:https://pan.baidu.com/s/1pJL1dmABECVpPAwyFDJvqg
提取碼:4otz
gz:
鏈接:https://pan.baidu.com/s/1EJYpX-1ZwSRezIFfNQUQ0Q
提取碼:vsmz
安裝完成啟動Nacos
訪問:http://localhost:8848/nacos
默認賬號:nacos; 密碼:nacos
一、Nacos服務注冊與發現
maven依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
其他項目可能用上的依賴:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
yml配置:
server: port: 9001 spring: application: name: cloud-alibaba-nacos-provider cloud: nacos: discovery: server-addr: localhost:8848 management: endpoints: web: exposure: include: '*'
有關Nacos Discovery Starter配置的更多信息
組態 | 鍵 | 默認值 | 描述 |
---|---|---|---|
服務器地址 |
|
Nacos服務器偵聽器的IP和端口 |
|
服務名稱 |
|
|
命名當前服務 |
重量 |
|
|
值范圍:1到100。值越大,重量越大。 |
網卡名稱 |
|
如果未指定IP地址,則注冊的IP地址是網卡的IP地址。如果也未指定,默認情況下將使用第一個網卡的IP地址。 |
|
注冊IP地址 |
|
最高優先級 |
|
注冊端口 |
|
|
默認情況下將自動檢測。不需要配置。 |
命名空間 |
|
一個典型的場景是隔離針對不同環境的服務注冊,例如測試和生產環境之間的資源(配置,服務等)隔離。 |
|
快捷鍵 |
|
阿里雲帳戶訪問密鑰 |
|
密鑰 |
|
阿里雲賬戶密鑰 |
|
元數據 |
|
您可以使用地圖格式為服務定義一些元數據 |
|
日志文件名 |
|
||
集群名稱 |
|
|
Nacos的群集名稱 |
終點 |
|
特定服務在特定區域中的域名。您可以使用該域名動態檢索服務器地址 |
|
是否集成色帶 |
|
|
在大多數情況下設置為true |
啟用Nacos手表 |
|
|
設置為false以關閉手表 |
啟動類添加:@EnableDiscoveryClient
服務提供者(provider)與服務消費者配置基本一樣參照上面,只是配置的服務名字不一樣
spring-cloud-starter-alibaba-nacos-discovery 默認集成了Ribbon

因此服務消費者(consumer)可以通過RestTemplate + ribbon 做負載調用服務

二、Nacos config 統一配置中心
maven依賴:
<!--alibaba-nacos-config--> <dependency> <groupId> com.alibaba.cloud </groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
bootstrap.yml:
server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: # nacos 服務注冊中心地址 server-addr: localhost:8848 config: # nacos 作為配置中心的地址 server-addr: localhost:8848 # 指定yaml格式的配置方式 file-extension: yaml
application.yml
spring:
profiles:
active: dev
啟動類添加:@EnableDiscoveryClient
controller:
@RestController @RefreshScope // 支持Nacos的動態刷新功能 public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo(){ return configInfo; } }
在Nacos中添加配置文件:
Data ID文件命名規范:
啟動項目看看能不能獲取到配置信息:
自定義命名空間:
命名空間用於隔離不同租戶的配置。在不同的命名空間中,組和數據ID可以相同。命名空間的典型場景是隔離不同環境的配置,例如,開發/測試環境與生產環境(配置和服務等)之間的隔離。
如果未指定名稱空間,則使用Nacos的“公共”名稱空間${spring.cloud.nacos.config.namespace}
。您還可以通過以下方式指定自定義名稱空間:
spring.cloud.nacos.config.namespace = b3404bc0-d7dc-4855-b519-570ed34b62d7
此配置必須在bootstrap.properties文件中。的值spring.cloud.nacos.config.namespace
是名稱空間的ID,可以從Nacos控制台中檢索ID的值。添加配置時,請勿選擇其他名稱空間。否則,將無法正確檢索配置。
nacos config更多配置參數如下:
組態 | 鍵 | 默認值 | 描述 |
---|---|---|---|
服務器地址 |
|
Nacos服務器偵聽器的IP和端口 |
|
來自Nacos配置的Dataid |
|
首先使用前綴,然后使用名稱,最后使用spring.application.name |
|
來自Nacos配置的Dataid |
|
首先使用前綴,然后使用名稱,最后使用spring.application.name |
|
編碼nacos配置內容 |
|
編碼nacos配置內容 |
|
GROUP for Nacos配置 |
|
|
GROUP for Nacos配置 |
nacos config dataId的后綴,也是config內容的文件擴展名。 |
|
|
nacos config dataId的后綴,以及config內容的文件擴展名(現在支持屬性或yaml(yml)) |
從nacos獲取配置超時 |
|
|
從nacos獲取配置超時 |
終點 |
|
終點 |
|
命名空間 |
|
命名空間 |
|
快捷鍵 |
|
阿里雲帳戶訪問密鑰 |
|
密鑰 |
|
阿里雲賬戶密鑰 |
|
Nacos Server的上下文路徑 |
|
Nacos Server的上下文路徑 |
|
集群名稱 |
|
集群名稱 |
|
共享配置的Dataid |
|
共享配置的數據標識,用“,”分隔 |
|
共享配置的動態刷新dataid |
|
共享配置的動態刷新數據標識,用“,”分隔 |
|
自定義dataid |
|
這是一個列表,由 |
自定義組:
{spring.cloud.nacos.config.group}
未定義配置時,默認情況下使用DEFAULT_GROUP 。如果需要定義自己的組,則可以在以下屬性中進行定義:
spring.cloud.nacos.config.group = DEVELOP_GROUP