您好,登錄后才能下訂單哦!
在開發過程中,通常我們會配置一些參數來實現某些功能,比如是否開啟某項服務,告警郵件配置等等。一般會通過硬編碼、配置文件或者數據庫的形式實現。
那么問題來了,如何更加優雅的實現?歡迎來到 Nacos 的世界!
Nacos 是阿里巴巴的開源的項目,全稱 Naming Configuration Service ,專注于服務發現和配置管理領域。
Nacos 致力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
如 Nacos 全景圖所示,Nacos 無縫支持一些主流的開源生態,例如
使用 Nacos 簡化服務發現、配置管理、服務治理及管理的解決方案,讓微服務的發現、管理、共享、組合更加容易。
這里以為 Spring-Boot2.x 為例:
pom.xml引入依賴:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
啟動類:
package com.itstyle.nacos;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 啟動類
* 創建者 爪哇筆記 https://blog.52itstyle.vip
* 創建時間 2019年7月14日
* dataId 可以根據自己的項目自定義
* autoRefreshed 是一個布爾值, Nacos 就會把最新的配置推送到該應用的所有機器上,簡單而高效。
*/
@SpringBootApplication
@NacosPropertySource(dataId = "itstyle.blog", autoRefreshed = true)
public class Application {
private static final Logger logger = LoggerFactory.getLogger(Application.class);
public static void main(String[] args){
SpringApplication.run(Application.class, args);
logger.info("啟動");
}
使用案例:
package com.itstyle.nacos;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 創建者 爪哇筆記 https://blog.52itstyle.vip
*/
@Controller
@RequestMapping(value = "config")
public class NacosConfigController {
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = RequestMethod.GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
配置文件引入:
# 安全機制,建議走內網、配置防火墻
nacos.config.server-addr=127.0.0.1:8848
服務端安裝配置請參考:
https://nacos.io/zh-cn/docs/quick-start.html
主頁:
dataId 一定要與系統配置保持一致,配置內容為鍵值對的方式。
Nacos Server 默認使用的是內嵌的數據庫,生產環境建議修改使用 mysql 數據庫存儲配置信息。
在配置文件application.properties添加配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
創建數據庫,在Nacos Server conf文件夾下,找到nacos-mysql.sql文件,導入創建的數據庫即可。
Nacos默認賬號密碼為:nacos,修改密碼需要使用引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
然后使用代碼加密:
package com.itstyle.nacos;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* 創建者 爪哇筆記 https://blog.52itstyle.vip
*/
public class PasswordEncoderUtil {
public static void main(String[] args) {
System.out.println(new BCryptPasswordEncoder().encode("nacos"));
}
}
總的來說,Nacos 還是蠻方便的,配置中心也僅僅是它的一個小功能而已。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。