日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring cloud Alibaba 的 Nacos学习笔记

發布時間:2024/9/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring cloud Alibaba 的 Nacos学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring cloud Alibaba 的 Nacos學習筆記

文章目錄

  • spring cloud Alibaba 的 Nacos學習筆記
    • 下載nacos
    • spring cloud Alibaba依賴
      • nacos-discovery依賴
      • nacos-config依賴
    • nacos-discovery的使用
      • 生產者application.yml配置
      • 生產者啟動類
      • 生產者Controller
      • 消費者application.yml配置
      • 消費者的RestTemplate
      • 消費者的Controller
    • nacos-config的使用
      • bootstrap.properties配置
      • application.properties配置
      • 定位配置文件
      • 刷新配置
      • 數據模型

下載nacos

GitHub下載地址:Tags · alibaba/nacos (github.com)

下載安裝都十分簡單,下載下來解壓,然后到bin目錄運行那個startup文件即可。

GitHub開始介紹的使用方式

On the Linux/Unix/Mac platform, run the following command to start server with standalone mode:

sh startup.sh -m standalone

On the Windows platform, run the following command to start server with standalone mode. Alternatively, you can also double-click the startup.cmd to run NacosServer.

startup.cmd -m standalone

官網快速開始教程:Quick Start for Nacos

官方網站:home (nacos.io)

官方的示例控制臺模樣:

spring cloud Alibaba依賴

spring cloud Alibaba版本依賴可以去alibaba的github倉庫的wiki查看:版本說明 · alibaba/spring-cloud-alibaba Wiki (github.com)

我這里用的spring cloud Hoxton版本所以依照官方文檔的提示,我應該使用spring-cloud-alibaba-dependencies-2.2.6.RELEASE,也就是2.2.6.RELEASE版本的依賴。

如果需要使用 Spring Cloud Hoxton 版本,請在 dependencyManagement 中添加如下內容

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope> </dependency>

nacos-discovery依賴

官方網站GitHub:Nacos discovery · alibaba/spring-cloud-alibaba Wiki (github.com)

<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>

nacos-config依賴

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

nacos-discovery的使用

生產者application.yml配置

根據官網文檔,nacos暴露的端口是8848

server:port: 8300spring:application:name: nacos-order-producercloud:nacos:discovery:server-addr: localhost:8848 #nacos-server的地址management:endpoints:web:exposure:include: *

生產者啟動類

跟普通的服務發現應用一樣,用注解@EnableDiscoveryClient開始服務發現功能。

@SpringBootApplication @EnableDiscoveryClient //開啟服務發現 public class NacosProviderDemoApplication {public static void main(String[] args) {SpringApplication.run(NacosProducerDemoApplication.class, args);} }

生產者Controller

@RestController public class EchoController {@GetMapping(value = "/echo/{string}")public String echo(@PathVariable String string) {return "Hello Nacos Discovery " + string;} }

消費者application.yml配置

消費者這邊的配置跟生產者的配置沒有什么太多改變

server:port: 8301spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848 #nacos-server的地址

消費者的RestTemplate

nacos內置了ribbon做均勻負載,所以我們消費端使用ribbon做均勻負載。

創建RestTemplate的bean時,在上面添加@LoadBalanced注解。以開啟均勻負載功能。

@Configuration public class TemplateConfig {@Bean("restTemplate")@LoadBalancedpublic RestTemplate getrestTemplate(){return new RestTemplate();} }

消費者的Controller

通過服務名調用消費端提供的服務,因為加了@LoadBalanced開啟了均勻負載。

@RestController @Slf4j public class OrderController {private static final String PAMENT_URL = "http://nacos-order-producer";@Resourceprivate RestTemplate restTemplate;@GetMapping("/comsumer/echo/{string}")public String create(@PathVariable String string){return restTemplate.getForObject(PAMENT_URL+"/echo/"+string,String.class);} }

nacos-config的使用

nacos除了使服務發現功能外還能作為配置中心進行工作。

bootstrap.properties配置

一點要使用bootstrap.yaml或者bootstrap.properties,bootstrap為系統級別的配置文件,優先級高最先加載,并且不會被application覆蓋。

這里配置nocas server的地址即可。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.application.name=example #spring.cloud.nacos.config.file-extension: yaml #配置獲取文件的后綴

application.properties配置

spring.profiles.active=dev

定位配置文件

根據官網的信息,如何定位要想要的配置文件呢,通過一些dataId去定位獲取。

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默認為 spring.application.name 的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
  • spring.profiles.active 即為當前環境對應的 profile,詳情可以參考 Spring Boot文檔。 注意:當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
  • file-exetension 為配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 和 yaml 類型。

刷新配置

根據官網的提示,nacos是會自動廣播刷新配置的,我們利用spring cloud@RefreshScope注解進行配置刷新的驗證。nacos相比傳統的spring cloud bus +spring cloud config要好用很多。

@RestController @RequestMapping("/config") @RefreshScope public class ConfigController {@Value("${useLocalCache:false}")private boolean useLocalCache;@RequestMapping("/get")public boolean get() {return useLocalCache;} }

數據模型

nocos有自己定義識別數據空間,可以通過三個維度的定位鎖定指定的唯一的數據或配置文件。里面有寫數據模型的結構:Nacos 架構

這里簡單簡述就是:命名空間(Namespace),分組(Group),數據ID(Service/DataId)

  • 默認命名空間名為:public
  • 默認分組名為:DEFAULT_GROUP

通過Namespace+Group+DataId鎖定唯一的資源。如下配置:

#鎖定資源nacos命名空間下的order分組下的nacos-order-consumer-dev.yaml文件 spring:application:name: nacos-order-consumercloud:nacos:config:server-addr: localhost:8848file-extension: yamlgroup: ordernamespace: nacosprofiles:active: dev

總結

以上是生活随笔為你收集整理的spring cloud Alibaba 的 Nacos学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。