Springcloud-nacos實現配置和註冊中心
Springcloud-nacos實現配置和註冊中心
最近,阿里開源的nacos比較火,可以和springcloud和dubbo共用,對dubbo升級到springcloud非常的方便。這裡學習一下他的配置和註冊中心。我主要記錄一下它的使用方式和踩得坑。
nacos簡單介紹
Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元資料及流量管理。
Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務正規化、雲原生正規化) 的服務基礎設施。
以上是從nacos官網摘抄下來的,總結一下nacos有以下有點幾個優點:
(2)部署交付簡單
(3)包含註冊中心,不用獨自搭建配置和註冊中心。
(4)完美整合spring cloud和dubbo拓展性好
nacos使用方式,具體參考官方配置
(1)從 Github 上下載原始碼方式
------ git clone https://github.com/alibaba/nacos.git
------ cd nacos/
------ mvn -Prelease-nacos clean install -U
------ ls -al distribution/target/
------ cd distribution/target/nacos-server-$version/nacos/bin
(2)解壓,啟動nacos
------ unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
------ cd nacos/bin
------ sh startup.sh -m standalone
完成,叢集高可用請自行研究,本文不過多贅述。
nacos實現配置中心
springcloud使用nacos作為配置中心特別簡單。只需要新增依賴,使用bootstrap配置註冊中心地址即可。
(1)新增nacos的配置中心依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
</dependency>
(2)配置bootstrap.properties檔案
---- #配置服務的名字
---- spring.application.name=provider-service
---- #nacos配置中心的地址
---- spring.cloud.nacos.config.server-addr=nacos.ailijie.top
---- #nacos配置的編碼方式
---- spring.cloud.nacos.config.encode=utf-8
---- #配置組名子,需要在nacos的配置設定,不然找不到
---- spring.cloud.nacos.config.group=PROVIDER_GROUP
---- #配置字尾,properties不需要
---- spring.cloud.nacos.config.file-extension=yml
---- #載入nacos多個配置檔案
---- spring.cloud.nacos.config.shared-dataids=provider-service.properties,test.properties
---- #重新整理載入的其他環境
----spring.cloud.nacos.config.refreshable-dataids=provider-service.properties,test.properties
(3)簡單介紹一下,使用nacos配置中心,客戶端會定時心跳拉去配置,環境變數會動態重新整理,但是在bean中需要使用 @RefreshCode註解去重新整理,不然不生效。資料庫配置可以自定義資料來源。載入其他配置檔案的話,需要使用refres-dataids去重新整理環境。
nacos實現註冊中心
同樣的,nacos實現註冊中心也是相當的簡單,nacos配置成功後,我們只需要新增依賴,註解,配置註冊中心地址即可。
(1)新增依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
(2)在啟動類上新增 @EnableDiscoveryClient 註解
(3)配置註冊中心地址
---- #配置服務名字
---- spring.application.name=xxx-service
---- #配置服務叢集名字
---- spring.cloud.nacos.discovery.cluster-name=consumer-service
---- #配置註冊中心地址
---- spring.cloud.nacos.discovery.server-addr=nacos.ailijie.top
完成,就是這樣簡單。
nacos採坑心得
下面是我遇到的一些問題:
(1)使用版本管理,學習新專案我們首先需要了解版本相容特性,不然會出現很多問題。
(2)配置不生效,沒有使用@RefreshCode註解重新整理配置
(3)分清註冊中心和配置中心是兩個概念,需要配置兩個地址
(4)學會看原始碼,看維基。
未完待續,接下來會寫服務發現feign和springdataflow相關話題。