新聞中心
本文轉(zhuǎn)載自微信公眾號(hào)「程序猿DD」,作者涌月。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序猿DD公眾號(hào)。

十多年的鳳山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鳳山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“鳳山網(wǎng)站設(shè)計(jì)”,“鳳山網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
隨著Nacos2.0成熟穩(wěn)定,Nacos-spring-boot發(fā)布0.1.10、0.2.10兩個(gè)核心版本,全面支持了Nacos2.0,同時(shí)支持自動(dòng)識(shí)別配置類型注入能力,修復(fù)了高并發(fā)場(chǎng)景下數(shù)據(jù)一致性問(wèn)題。
Nacos-spring-boot老用戶,將相關(guān)maven依賴進(jìn)行如下替換,即可快速升級(jí)。
com.alibaba.boot nacos-config-spring-boot-starter 0.2.10
本文將系統(tǒng)介紹新版本增強(qiáng)能力,并且以一次生產(chǎn)環(huán)境的配置管理項(xiàng)目構(gòu)建過(guò)程為例,詳細(xì)描述新版本Nacos Spring Boot0.2.10版本的部署,幫助Spring Boot老玩家快速上岸Nacos2.0,感受長(zhǎng)連接帶來(lái)的10倍性能提升。
Nacos-spring-boot新版本特性
新發(fā)布的0.1.10版本和0.2.10版本主要feature增強(qiáng)包括以下幾個(gè)部分:
全面兼容Nacos2體系,向長(zhǎng)連接時(shí)代演進(jìn)
Nacos1體系中,配置中心的訂閱、實(shí)時(shí)推送功能主要通過(guò)長(zhǎng)輪訓(xùn)進(jìn)行。盡管長(zhǎng)輪訓(xùn)是HTTP短連接體系中被采用較多的動(dòng)態(tài)刷新解決方案,但也不可避免地存在時(shí)延過(guò)高等缺陷;在生產(chǎn)實(shí)踐中暴露了一定問(wèn)題,如下面這兩個(gè)鏈接所示:
- https://github.com/alibaba/nacos/issues/6345
- https://github.com/alibaba/nacos/issues/2674
Nacos2體系將整個(gè)配置中心的訂閱、推送功能重構(gòu)成為了基于gRPC的長(zhǎng)連接方案,保證了配置刷新實(shí)時(shí)推送;迄今為止,已經(jīng)歷了大量的生產(chǎn)環(huán)境考驗(yàn)。
自動(dòng)識(shí)別配置的文件類型
在使用Nacos-spring-boot新版本之后,即使用戶對(duì)配置類型未設(shè)置的情況下,nacos-spring-boot也會(huì)自動(dòng)識(shí)別該配置的文件類型(json/yaml/properties)并給定默認(rèn)值。該機(jī)制極大降低了因?yàn)槲募愋筒黄ヅ洌瑯I(yè)務(wù)側(cè)出現(xiàn)配置處理錯(cuò)誤的風(fēng)險(xiǎn)。下圖為新版本Nacos-spring-boot項(xiàng)目在一次配置文件刷新過(guò)程中的工作機(jī)制。
@NacosValue注解全面支持Spel表達(dá)式
Spel表達(dá)式全稱為“Spring Expression Language”,是Spring自帶的一種動(dòng)態(tài)字符串構(gòu)建方式表達(dá)式)。用戶可以方便地使用Spel表達(dá)式來(lái)定義NacosValue,與Spring功能完美整合,減少SpringBoot玩家們的工作量。
修復(fù)了高并發(fā)場(chǎng)景下的一致性問(wèn)題
阿里云內(nèi)部同學(xué)在使用Nacos-spring-boot項(xiàng)目進(jìn)行大規(guī)模壓測(cè)的過(guò)程中,出現(xiàn)了一些配置讀取錯(cuò)誤:在大流量頻繁修改某些dataId的配置的過(guò)程中,客戶端可能會(huì)拉取到舊版本的配置數(shù)據(jù),導(dǎo)致客戶端配置數(shù)據(jù)反復(fù)。Nacos-spring-boot新版本通過(guò)增加智能鎖、升級(jí)Nacos-spring依賴等方式,對(duì)于潛在的線程安全風(fēng)險(xiǎn)進(jìn)行了修復(fù)。
生產(chǎn)演示-客戶端部署
Springboot老玩家可以通過(guò)下面方式升級(jí)到Nacos-spring-boot新版本。
在 Maven 項(xiàng)目的 pom.xml 文件中增加(或升級(jí))以下依賴來(lái)獲取 Starter
com.alibaba.boot nacos-config-spring-boot-starter 0.2.10
注: 使用時(shí)請(qǐng)根據(jù)自定義構(gòu)建的Spring Boot版本選擇相應(yīng)的nacos-config-spring-boot-starter版本:nacos-config-spring-boot-starter 版本 0.2.10 對(duì)應(yīng) Spring Boot 2.x 版本,版本 0.1.10 對(duì)應(yīng) Spring Boot 1.x 版本。
在 application.properties 文件中配置連接信息
- nacos.config.server-addr=${nacos_server_address}:8848
注:${nacos_server_address}為占位符,表示Nacos server的地址,后文將給出如何獲取其詳細(xì)地址信息的方案。
使用 @NacosPropertySource 加載 dataId 為 example 的配置源,并開(kāi)啟自動(dòng)更新
- @SpringBootApplication
- @NacosPropertySource(dataId = "com.alibaba.nacos.example.properties", autoRefreshed = true)
- public class NacosConfigApplication {
- public static void main(String[] args) {
- SpringApplication.run(NacosConfigApplication.class, args);
- }
- }
使用 @NacosValue 注解設(shè)置屬性值。
- @Controller
- @RequestMapping("config")
- public class ConfigController {
- @NacosValue(value = "${connectTimeoutInMills:5000}", autoRefreshed = true)
- private int connectTimeoutInMills;
- @RequestMapping(value = "/get", method = GET)
- @ResponseBody
- public int get() {
- return connectTimeoutInMills;
- }
- }
生產(chǎn)演示-服務(wù)端部署
Nacos官方為SpringBoot玩家提供了兩種服務(wù)端的部署方式:自建開(kāi)源Nacos和MSE Nacos專業(yè)版。
自建開(kāi)源Nacos
用戶如果選擇開(kāi)源Nacos,可以進(jìn)行自主部署、運(yùn)維、生產(chǎn)環(huán)境調(diào)優(yōu);另外,由于開(kāi)源Nacos協(xié)議為Apache2.0協(xié)議,用戶甚至可以進(jìn)行自定義功能的開(kāi)發(fā)。開(kāi)源Nacos的安裝步驟可參考https://github.com/alibaba/nacos,支持環(huán)境包括Windows、MacBook、Linux等各種平臺(tái),可以方便地進(jìn)行單機(jī)或集群?jiǎn)?dòng)。
MSE Nacos專業(yè)版
MSE Nacos則致力于提供高可用的一站式解決方案,相對(duì)于基礎(chǔ)版和開(kāi)源版本進(jìn)行了大量升級(jí):
- 自動(dòng)化升級(jí)流程,無(wú)需復(fù)雜運(yùn)維部署,即可完成基礎(chǔ)版至專業(yè)版的平滑升級(jí)。
- 提供企業(yè)級(jí)99.95%高可用保障。
- 支持長(zhǎng)鏈接,性能相對(duì)于基礎(chǔ)版提升10倍。
- 更完善的配置加解密體系,無(wú)需擔(dān)心敏感配置信息丟失風(fēng)險(xiǎn)。
- 更完善的鑒權(quán)體系,全面引入阿里云RAM主子賬號(hào)體系權(quán)限控制。
使用MSE Nacos專業(yè)版作為服務(wù)端,詳細(xì)步驟可分為如下幾步。
1、首先訪問(wèn)MSE官網(wǎng),https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0,登陸。
2、點(diǎn)擊"立即購(gòu)買(mǎi)"、"創(chuàng)建實(shí)例"。
3、選擇“專業(yè)版”,并根據(jù)需要進(jìn)行其他相應(yīng)設(shè)置。
并點(diǎn)擊立即購(gòu)買(mǎi)。
4、等待3分鐘,即可在控制臺(tái)看到剛剛創(chuàng)建的Nacos集群。
5、將相應(yīng)內(nèi)網(wǎng)或公網(wǎng)地址復(fù)制,并填入上文所述${nacos_server_address}中。(如希望使用內(nèi)網(wǎng)訪問(wèn),則可直接復(fù)制內(nèi)網(wǎng)地址;如希望使用公網(wǎng)訪問(wèn),則需要點(diǎn)擊進(jìn)入并將訪問(wèn)端添加進(jìn)宮網(wǎng)白名單)。
6、點(diǎn)擊進(jìn)入相應(yīng)實(shí)例的控制臺(tái),點(diǎn)擊“配置列表”、“創(chuàng)建配置”。
7、創(chuàng)建和客戶端匹配的配置信息,注意下圖中紅框標(biāo)出的幾個(gè)項(xiàng)目(其中數(shù)據(jù)加密根據(jù)需要選擇),最后點(diǎn)擊“發(fā)布”。
結(jié)果驗(yàn)證
在本地啟動(dòng)客戶端項(xiàng)目,并運(yùn)行以下命令:
- curl localhost:8080/config/get
若返回以下信息,則說(shuō)明 SDK 可正常使用。
- 3000
在MSE控制臺(tái)將示例配置 com.alibaba.nacos.example.properties更改為以下內(nèi)容并發(fā)布。
- connectTimeoutInMills=6000
若Console打印出更新的配置內(nèi)容 ,則說(shuō)明SDK的配置自動(dòng)更新功能正常;工程正式跨入高性能配置中心時(shí)代。
文章標(biāo)題:Nacos2.0的SpringBootStarter來(lái)了!
分享路徑:http://m.fisionsoft.com.cn/article/djghdgg.html


咨詢
建站咨詢
