<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Spring Cloud Alibaba 致力於提供微服務開發的一站式解決方案,Nacos 作為其核心元件之一,可以作為註冊中心和設定中心使用,本文將對其用法進行詳細介紹。
Nacos 致力於幫助您發現、設定和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務設定、服務後設資料及流量管理。
Nacos 具有如下特性:
我們先從官網下載Nacos,這裡下載的是nacos-server-1.1.4.zip檔案,
下載地址:https://github.com/alibaba/nacos/releases
設定JAVA_HOME環境變數,不設定會導致無法執行Nacos;
JAVA_HOME=D:developerenvJavajdk1.8.0_91
解壓安裝包,直接執行bin目錄下的startup.cmd;
執行成功後,存取http://localhost:8848/nacos可以檢視Nacos的主頁,預設賬號密碼都是nacos。
我們通過改造consul-user-service和consul-ribbon-service來演示下服務註冊與發現的功能,主要是將應用原來的Consul註冊中心支援改為Nacos註冊中心支援。
建立nacos-user-service模組和nacos-ribbon-service模組;
如果要使用Spring Cloud Alibaba 的元件都需要在pom.xml中新增如下的設定;
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
修改相關依賴,把原來的Consul註冊發現的依賴改為Nacos的:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
修改組態檔application.yml,將Consul的註冊發現設定改為Nacos的:
server: port:8206 spring: application: name:nacos-user-service cloud: nacos: discovery: server-addr:localhost:8848#設定Nacos地址 management: endpoints: web: exposure: include:'*'
執行兩個nacos-user-service和一個nacos-ribbon-service,在Nacos頁面上可以看到如下資訊:
由於我們執行了兩個nacos-user-service,而nacos-ribbon-service預設會去呼叫它的介面,我們呼叫nacos-ribbon-service的介面來演示下負載均衡功能。
多次呼叫介面:http://localhost:8308/user/1 ,可以發現兩個nacos-user-service的控制檯交替列印如下資訊。
2019-11-06 14:28:06.458 INFO 12092 --- [nio-8207-exec-2] c.macro.cloud.controller.UserController : 根據id獲取使用者資訊,使用者名稱稱為:macro
我們通過建立nacos-config-client模組,並在Nacos頁面中新增設定資訊來演示下設定管理的功能。
在pom.xml中新增相關依賴:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
新增組態檔application.yml,啟用的是dev環境的設定:
spring: profiles: active:dev
新增組態檔bootstrap.yml,主要是對Nacos的作為設定中心的功能進行設定:
server: port:9101 spring: application: name:nacos-config-client cloud: nacos: discovery: server-addr:localhost:8848#Nacos地址 config: server-addr:localhost:8848#Nacos地址 file-extension:yaml#這裡我們獲取的yaml格式的設定
建立ConfigClientController,從Nacos設定中心中獲取設定資訊:
/** * Created by macro on 2019/9/11. */ @RestController @RefreshScope publicclass ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/configInfo") public String getConfigInfo() { return configInfo; } }
我們先來講下Nacos中的dataid的組成格式及與SpringBoot組態檔中的屬性對應關係:
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
比如說我們現在要獲取應用名稱為nacos-config-client的應用在dev環境下的yaml設定,dataid如下:
nacos-config-client-dev.yaml
按照以上dataid新增如下設定:
config: info:"config info for dev"
填寫設定示意圖:
啟動nacos-config-client,呼叫介面檢視設定資訊:http://localhost:9101/configInfo
config info for dev
我們只要修改下Nacos中的設定資訊,再次呼叫檢視設定的介面,就會發現設定已經重新整理,Nacos和Consul一樣都支援動態重新整理設定。當我們在Nacos頁面上修改設定並行布後,應用會重新整理設定並列印如下資訊。
2019-11-06 14:50:49.460 INFO 12372 --- [-localhost_8848] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$ec395f8e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-11-06 14:50:49.608 INFO 12372 --- [-localhost_8848] c.a.c.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client-dev.yaml', group: 'DEFAULT_GROUP' 2019-11-06 14:50:49.609 INFO 12372 --- [-localhost_8848] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='nacos-config-client-dev.yaml'}, NacosPropertySource {name='nacos-config-client.yaml'}]} 2019-11-06 14:50:49.610 INFO 12372 --- [-localhost_8848] o.s.boot.SpringApplication : The following profiles are active: dev 2019-11-06 14:50:49.620 INFO 12372 --- [-localhost_8848] o.s.boot.SpringApplication : Started application in 0.328 seconds (JVM running for 172.085) 2019-11-06 14:50:49.638 INFO 12372 --- [-localhost_8848] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [config.info]
參考資料
Spring Cloud Alibaba 官方檔案:https://github.com/alibaba/spring-cloud-alibaba/wiki
springcloud-learning ├── nacos-config-client -- 用於演示nacos作為設定中心的nacos使用者端 ├── nacos-user-service -- 註冊到nacos的提供User物件CRUD介面的服務 └── nacos-service -- 註冊到nacos的ribbon服務呼叫測試服務
專案原始碼地址
https://github.com/macrozheng/springcloud-learning
以上就是Spring Cloud Alibaba使用Nacos作為註冊中心和設定中心的詳細內容,更多關於Spring Cloud Alibaba使用Nacos註冊設定的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45