願你生命中有夠多的雲翳,造就一個美好的黃昏
歡迎關注公眾號【渣男小四】,一個喜歡技術更喜歡藝術的青年
一.環境准備
1.64 bit OS,支持 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac。
2.64 bit JDK 1.8+
3.Maven 3.2.x+
二.安裝
1.源碼安裝
git clone https://github.com/alibaba/nacos.git
cd nacos/ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
啟動服務
啟動命令(standalone代表着單機模式運行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系統,或者運行腳本報錯提示[[符號找不到,可嘗試如下運行:
bash startup.sh -m standalone
2.源碼安裝
從GitHub下載好tar安裝包
tar -xvf nacos-server-$version.tar.gz cd nacos/bin
啟動同上
3.Docker安裝
查找鏡像
docker search nacos 錄取鏡像 docker pull nacos/nacos-server
運行鏡像(單機版)
docker run -d -p 8848:8848 -e MODE=standalone -v /opt/nacos/init.d/
custom.properties:/home/nacos/init.d/custom.properties -v /opt/nacos/logs:/home/nacos/logs
--restart always --name nacos nacos/nacos-server
安裝啟動成功后瀏覽器輸入http://ip:8848/nacos/ , 賬號密碼默認為nacos
服務注冊
1.pom文件
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${latest.version}</version> </dependency>
2.yml文件
spring: application: name: dream-gateway cloud: nacos: discovery: server-addr: 127.0.0.1:8848
3.主啟動類上加上注解
@EnableDiscoveryClient
服務注冊到nacos成功
Nacos Config(配置中心)
Nacos 提供用於存儲配置和其他元數據的 key/value 存儲,為分布式系統中的外部化配置提供服務器端和客戶端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 應用的外部屬性配置。
Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客戶端和服務器上的概念與 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 階段,配置被加載到 Spring 環境中。當應用程序通過部署管道從開發到測試再到生產時,您可以管理這些環境之間的配置,並確保應用程序具有遷移時需要運行的所有內容。
在nacos可視化界面配置
Data ID格式為: ${prefix}-${spring.profiles.active}.${file-extension}
prefix
默認為 spring.application.name
的值,也可以通過配置項 spring.cloud.nacos.config.prefix
來配置。
spring.profiles.active
即為當前環境對應的 profile, 注意:當 spring.profiles.active
為空時,對應的連接符 -
也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
file-exetension
為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension
來配置。目前只支持 properties
和 yaml
類型。
代碼:
pom.xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
bootstrapp.yml
spring: application: name: dream-test cloud: nacos: config: file-extension: yaml #不能為yml,不然識別不出來 server-addr: 127.0.0.1:8848 discovery: server-addr:
127.0.0.1
:8848
application.yml
spring:
profiles:
active: dev #開發環境
獲取配置中心key-value
@RefreshScope 注解動態刷新
@RestController @RefreshScope public class NacosController { @Value("${user.name}") private String name; @Value("${user.age}") private int age; @GetMapping("/getProperties") public R nacosConfig(){ HashMap<String,Object> hashMap = new HashMap<>(); hashMap.put("name",name); hashMap.put("age",age); return R.success(hashMap); } }
結果