成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nacos真香,從零到一學起來

開發 架構
Nacos是阿里巴巴開源的微服務管理平臺,可以幫助開發者快速實現動態服務發現、服務配置、服務元數據及流量管理。

本文轉載自微信公眾號「程序員jinjunzhu」,作者jinjunzhu。轉載本文請聯系程序員jinjunzhu公眾號。

Nacos是阿里巴巴開源的微服務管理平臺,可以幫助開發者快速實現動態服務發現、服務配置、服務元數據及流量管理。

這篇文章主要來講一下Nacos作為配置中心和注冊中心的使用。

1 安裝

1.1 linux下安裝

首先搭建一套單機版的Nacos集群。Nacos的安裝有兩種方式,一種是下載源碼自己編譯安裝,另一種是下載編譯后的壓縮包解壓后直接使用。

本文我采用第二種方式。

首先從官網下載安裝包,下載地址如下:

  1. https://github.com/alibaba/nacos/releases/tag/2.0.2 

linux下安裝可能會遇到環境變量的問題,可以參考這篇文章[1]。如果還不行,執行下面兩個命令重新安裝:

  1. yum erase java-1.* #刪除原來的jdk 
  2. yum install java-1.8.0-openjdk* -y #重新安裝jdk 

jdk沒有問題后,啟動Nacos,啟動日志如下:

  1. [root@master bin]# sh startup.sh -m standalone 
  2. /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/bin/java  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/lib/ext -Xloggc:/root/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/root/nacos/plugins/health,/root/nacos/plugins/cmdb -Dnacos.home=/root/nacos -jar /root/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/root/nacos/conf/ --logging.config=/root/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288 
  3. nacos is starting with standalone 
  4. nacos is starting,you can check the /root/nacos/logs/start.out 

1.2 可視化界面

瀏覽器輸入下面地址:

  1. http://192.168.59.151:8848/nacos/index.html#/login 

登錄界面如下:

賬號/密碼:nacos/nacos,登錄成功后如下圖:

2 配置中心

Nacos可以方便地跟Spring、SpringBoot、SpringCloud、Docker、Dubbo、k8s等整合,本文主要使用SpringCloud來整合Nacos。

2.1 代碼配置

1. 在配置文件中加入下面的依賴:

  1. <dependency> 
  2.     <groupId>com.alibaba.cloud</groupId> 
  3.     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> 
  4.     <version>${latest.version}</version> 
  5. </dependency> 

 

根據官網介紹,這里的 latest.version 對應 springboot 版本,比如 Nacos 2.1.x.RELEASE 版本對應 SpringBoot 2.1.x 版本,Nacos 2.0.x.RELEASE 版本對應 SpringBoot 2.0.x 版本。但x這個子版本號不一定要完全匹配,上面latest.version我本地SpringBoot使用2.1.6,Nacos使用2.1.4。

2. 添加一個bootstrap.properties文件,跟SpringBoot的配置文件放在一個目錄下,在這個文件中增加下面配置:

  1. #Nacos server地址 
  2. spring.cloud.nacos.config.server-addr=192.168.59.151:8848 
  3. #配置前綴,如果不配置,默認是spring.application.name 
  4. spring.cloud.nacos.config.prefix=example 
  5. #dataId后綴 
  6. spring.cloud.nacos.config.file-extension=properties 

在SpringCloud整合Nacos時,Nacos的dataId完整格式如下:

  1. ${prefix}-${spring.profiles.active}.${file-extension} 

這里有兩點需要注意:

  • spring.profiles.active即為當前環境對應的 profile

當 spring.profiles.active 為空時,對應的連接符-也將不存在,dataId的拼接格式變成 ${prefix}.${file-extension}

  • file-exetension為配置內容的數據格式,目前只支持properties和yaml類型。

上面的配置,對應的 dataId 為 example-dev.properties。

2.2 測試配置

如果要實現配置自動刷新,只需要在代碼類上加一個注解@RefreshScope,如下面這段代碼來自官網:

  1. @Controller 
  2. @RequestMapping("config"
  3. @RefreshScope 
  4. public class ConfigController { 
  5.  
  6.     @Value("${useLocalCache:false}"
  7.     private boolean useLocalCache; 
  8.  
  9.     @RequestMapping(value = "/get", method = GET) 
  10.     @ResponseBody 
  11.     public boolean get() { 
  12.         return useLocalCache; 
  13.     } 

這時往Nacos寫入一個配置,命令如下:

  1. curl -X POST "http://192.168.59.151:8848/nacos/v1/cs/configs?dataId=example-dev.properties&group=DEFAULT_GROUP&content=useLocalCache=true" 

這時進入Nacos頁面,可以看到上面插入的配置,如下圖:

點擊"詳情",可以看到配置數據,如下圖:

這時如果使用api調用上面ConfigController的get方法,會返回true。如果使用下面的命令修改useLocalCache的值,再次調用get方法,會返回false。

  1. curl -X POST "http://192.168.59.151:8848/nacos/v1/cs/configs?dataId=example-dev.properties&group=DEFAULT_GROUP&content=useLocalCache=false" 

點擊下圖的示例代碼,可以看到獲取配置的代碼,也就是上面Controller的代碼。

3 注冊中心

3.1 配置服務提供者

1. 在pom文件中增加配置,如下:

  1. <dependency> 
  2.     <groupId>com.alibaba.cloud</groupId> 
  3.     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> 
  4.     <version>${latest.version}</version> 
  5. </dependency> 

 

根據官網介紹,這里的latest.version對應springboot版本,比如Nacos 2.1.x.RELEASE版本對應SpringBoot 2.1.x版本,Nacos 2.0.x.RELEASE版本對應SpringBoot 2.0.x版本。這里我本地SpringBoot使用2.1.6,上面latest.version使用2.1.4。

2. 在application.properties中增加下面配置:

  1. spring.cloud.nacos.discovery.server-addr=192.168.59.151:8848 

3. 在SpringBoot啟動類上加上注解@EnableDiscoveryClient。

4. 為了區分服務名稱,配置服務名稱如下:

  1. spring.application.name=springboot-producer 

3.2 配置服務調用者

跟服務提供者配置類似,這里修改配置名稱如下:

spring.application.name=springboot-consumer

3.3 測試

啟動上面兩個服務,登錄Nacos頁面,可以看到兩個服務已經注冊到Nacos。

在springboot-producer中增加一個Controller,代碼如下:

  1. @Controller 
  2. @RequestMapping("/producer"
  3. public class FeignTestController { 
  4.  
  5.     @RequestMapping("/result"
  6.     @ResponseBody 
  7.     public String getResult() throws InterruptedException { 
  8.         return "success"
  9.     } 

在springboot-consumer中增加Feign調用,如下:

  1. @FeignClient(value = "springboot-producer", configuration = FeignMultipartSupportConfig.class) 
  2. public interface FeignAsEurekaClient { 
  3.     @GetMapping("/producer/result"
  4.     String feignReadTimeout(); 

啟動測試類,調用成功,返回"success"。

4 一個問題

由于我本地應用使用的數據庫連接池是Hikaricp,修改配置中心的配置,通知本地應用時會報notify-error,日志上看是綁定數據庫參數失敗。這里應該改成druid連接池就可以了,有待驗證。

 

責任編輯:武曉燕 來源: 程序員jinjunzhu
相關推薦

2022-03-22 08:03:08

ReactTsTypeScript

2022-08-03 10:58:33

前端Svelte代碼

2017-08-28 13:08:22

Spark數據傾斜

2020-09-17 15:46:24

網絡安全數據技術

2018-11-01 09:32:19

服務器機房企業

2017-06-30 13:23:02

2025-04-09 10:58:43

2021-06-30 09:20:18

NuShell工具Linux

2021-10-28 07:10:21

rollupPlugin插件編寫

2020-09-08 18:37:49

TypeScript開發前端

2018-06-05 15:39:19

編程語言PythonJava

2021-03-10 09:54:43

RustNuShell系統

2025-05-07 03:15:00

NacosAPIMCP

2022-05-22 21:16:46

TypeScriptOmit 工具

2010-04-15 15:46:57

Unix操作系統

2010-04-22 14:53:07

Aix操作系統

2024-11-25 09:10:03

2025-01-16 10:46:31

2022-02-13 23:00:48

前端微前端qiankun

2024-06-12 09:06:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品九九 | 国产在线观 | 中文字幕高清在线 | 欧日韩在线 | 国产精品视频久久久 | 偷拍自拍网 | 国产一区二区三区久久久久久久久 | 国产一区三区在线 | 日韩欧美黄色 | 国产福利在线看 | 欧美video| 欧美不卡一区二区三区 | 男人天堂色 | 国产va| 亚洲成人精品 | 美国黄色毛片 | 国产精品一区二区视频 | 日韩午夜影院 | 久久精品国产免费看久久精品 | 夜夜夜操| 欧美亚洲高清 | 黄a网| 久久免费观看一级毛片 | 久久久成人免费一区二区 | 神马影院一区二区三区 | 精品国偷自产在线 | 欧美一区二区三区在线观看视频 | 亚洲激情综合网 | 国产视频第一页 | 精品国产欧美一区二区 | 国产偷录叫床高潮录音 | 成人av一区 | 久久精品中文 | 狠狠色香婷婷久久亚洲精品 | 亚洲国产精品一区二区第一页 | 国产伦精品一区二区三区照片91 | 欧美精品久久 | 成人亚洲一区 | 毛片a级 | 中文字幕观看 | 一级片av |