Spring Cloud: Nacos

Nacos

? ? ? ? Nacos是阿里巴巴開源的一個服務發現,配置管理和服務管理平臺。只要用于分布式系統中的微服務注冊,發現和配置管理,nacos是一個注冊中心的組件

官方倉庫:https://nacos.io/

Nacos的下載

Releases · alibaba/nacos

在官網中下載壓縮包到本地

windows下載

把壓縮包解壓到本地,將startup.cmd文件中的配置改為單機模式

將MOOE設置為standalone

?

打開startup.cmd,界面為這樣時,啟動成功

?訪問 http://127.0.0.1:8848/nacos

?

Linux下載

直接將你在官網上下載好的壓縮包拖入到Xshell中,加載完畢后進行解壓

通過這個命令進行解壓

unzip nacos-server-2.2.3.zip

解壓后輸入這個命令開啟Nacos單機模式

 bash startup.sh -m standalone

?進入nacos文件的bin路徑中,執行命令,開啟Nacos,出現這個界面,代表Nacos的單機模式啟動成功

訪問自己的IP+端口號/nacos 進行訪問

?

Nacos的使用

Nacos和Eureka的區別就是,Eureka需要自己搭建一個服務,Nacos不用自己搭建服務,組件已經準備好了,只需要啟動就行了

將Nacos引入自己的項目,首先引入Nacos的依賴

<properties><spring-cloud-alibaba.version>2022.0.0.0-RC2</spring-cloud-alibaba.version></properties><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency>

?注意:再父工程的pom文件中的<dependencyManagement>中引入Spring Cloud Alibaba的依賴

再分別再子項目中引入依賴

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

再引入Loadbalancer依賴

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>

修改自己的配置文件

將兩個子系統同時啟動

觀察Nacos,發現兩個服務都已經注冊再Nacos上

?

啟動多個服務,測試負載均衡

?

我們可以多次的訪問order-service中的接口,觀察負載均衡?

?

可以發現這三個實例訪問分配的幾乎差不多

當我們發現其中有一個節點上的性能很差的時候,我們可以對該節點進行下線

下線之后,再次請求節點,發現沒有服務進行請求了

?

配置權重

將請求均勻分配到多個服務器上,從而避免單個服務器過載

注:由于SpringCloudLoadBalancer具有自帶的負載均衡 ,所以不支持Nacos的負載均衡策略,所以需要我們自己開啟Nacos的負載均衡策略

?

同集群優先訪問

?

?給實例配置集群名稱

?

Nacos健康檢查

?

Nacos服務實例類型

臨時實例:如果實例宕機超過一定的時間,就會自動的將實例刪除

非臨時實例:就算是實例宕機,也不會從服務列表中刪除

Nacos環境隔離

?創建好namespace,就可以對文件配置

Nacos配置中??

由于多人開發時候,配置文件可能需要經常修改,使用同一個配置文件容易沖突,配置中?就是對這些配置項進?統?管理.通過配置中?,可以集中查看,修改和刪除配置,?需再逐個 修改配置?件.提?效率的同時,也降低了出錯的?險

需要引入Nacos Config依賴

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud 2020.*之后版本需要引?bootstrap--> 
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

進行配置?

?

訪問這個接口?

@RequestMapping("/config")
@RefreshScope
@RestController
public class NacosController {@Value("${nacos.test.num}")private Integer num;@RequestMapping("/get")public Integer get(){return num;}
}

?

?

Data Id?

?Data Id的完整格式

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

文件的優先級:product-service-dev.properties> product-service.properties>product service?

Nacos與Eureka的區別‘

Nacos除了服務發現和注冊之外,還提供了配置中?,流量管理和DNS服務等功能

Eureka遵循AP原則

Nacos根據配置識別CP或者AP模式.如果注冊Nacos的Client的節點是臨時節點,那么Nacos對這個 Client節點的效果就是AP,反之是CP.AP和CP可以同時混合存在。

Eureka:基于拉模式.EurekaClient會定期從Server拉取服務信息,有緩存,默認每30秒拉取?次. Nacos:基于推送模式.服務列表有變化時實時推送給訂閱者,服務端和客?端保持?跳連接

希望能對大家有所幫助!!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下的c/c++開發之操作mysql數據庫

libmysqlclient-dev介紹&#xff08;Linux 下的 Mysql C/C 開發包&#xff09; libmysqlclient-dev 是一個開發包&#xff0c;在Linux環境下為使用 MySQL C API 進行開發的c/c程序員提供頭文件&#xff08;如 mysql.h&#xff09;和靜態庫/動態庫的鏈接信息&#xff08;如 lib…

Java EE(Spring+Spring MVC+MyBatis)從入門到精通企業級應用開發教程——1初識MyBatis框架

1、MyBatis工作原理 MyBatis操作數據庫流程分為8個步驟&#xff0c;具體介紹如下&#xff1a; &#xff08;1&#xff09;MyBatis讀取核心配置文件mybatis-config.xml mybatis-config.xml核心配置文件主要配置了MyBatis的運行環境等信息。 &#xff08;2&#xff09;加載映射…

【許可證】Open Source Licenses

長期更新 擴展&#xff1a;shield.io裝飾 開源許可證&#xff08;Open Source Licenses&#xff09;有很多種&#xff0c;每種都有不同的授權和限制&#xff0c;適用于不同目的。 默認的ISC&#x1f7f0;MIT License是否可商用是否要求開源衍生項目是否必須署名是否有專利授權…

ZooKeeper工作機制與應用場景

目錄 1.1、概述1.2、選舉機制1.2.1、選舉觸發條件1.2.2、選舉規則1.2.3、選舉過程詳解 1.3、數據同步機制1.3.1、正常同步1.3.2、宕機同步 1.4、客戶端常用命令1.5、應用場景1.5.1、配置管理1.5.2、命令服務1.5.3、分布式鎖服務1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式協調…

前端面經-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件

一、基本使用 1、什么是 Pinia&#xff1f; Pinia 是 Vue.js 的官方狀態管理庫&#xff0c;是 Vuex 的“升級版”。它專為 Vue 3 和 Composition API 設計&#xff0c;用于管理多個組件之間共享的數據&#xff08;也叫“全局狀態”&#xff09;。 2、為什么需要狀態管理庫&a…

數據結構之圖的遍歷

圖的遍歷 圖的遍歷目的是訪問圖的每一個頂點恰好一次,&#xff0c;同時訪問圖中每條邊恰好一 次。 對于無向圖&#xff0c;常見的遍歷方式有深度優先遍歷&#xff08;Depth-First Search, DFS&#xff09; 和廣度優先遍歷&#xff08;Breadth-First Search, BFS&#xff09;。…

Ubuntu 第11章 網絡管理_常用的網絡配置命令

為了管理網絡&#xff0c;Linux提供了許多非常有用的網絡管理命令。利用這些命令&#xff0c;一方面可以有效地管理網絡&#xff0c;另一方面出現網絡故障時&#xff0c;可以快速進行診斷。本節將對Ubuntu提供的網絡管理命令進行介紹。 11.2.1 ifconfig命令 關于ifconfig命令&…

Qt解決自定義窗口樣式不生效問題

方法一&#xff1a; this->setAttribute(Qt::WA_StyledBackground, true); 方法二&#xff1a; 將類繼承QWidget 改成繼承 QFrame class MyWidget : public QFrame {} 方法三&#xff1a;重新實現QWidget的paintEvent函數時&#xff0c;使用QStylePainter繪制。 void p…

HNUST湖南科技大學-軟件測試期中復習考點(保命版)

使用說明&#xff1a;本復習考點僅用于及格保命。軟件測試和其他專業課不太一樣&#xff0c;記憶的太多了&#xff0c;只能說考試的時候&#xff0c;想到啥就寫啥&#xff0c;多寫一點&#xff01;多寫一點&#xff01;多寫一點&#xff01;&#xff08;重要事情說三遍&#xf…

ES6 知識點整理

一、變量聲明&#xff1a;var、let、const 的區別 作用域 var&#xff1a;函數作用域&#xff08;函數內有效&#xff09;。let/const&#xff1a;塊級作用域&#xff08;{} 內有效&#xff0c;如 if、for&#xff09;。 變量提升 var 會提升變量到作用域頂部&#xff08;值為…

分布式爬蟲去重:Python + Redis實現高效URL去重

1. 引言 在互聯網數據采集&#xff08;爬蟲&#xff09;過程中&#xff0c;URL去重是一個關鍵問題。如果不對URL進行去重&#xff0c;爬蟲可能會重復抓取相同頁面&#xff0c;導致資源浪費、數據冗余&#xff0c;甚至觸發目標網站的反爬機制。 對于單機爬蟲&#xff0c;可以使…

C# WPF 顏色拾取器

x:Name=Color Picker 語言:C# WPF 下載:https://download.csdn.net/download/polloo2012/90780640 主界面 顏色庫 關于我們 顏色拾取器是一種能夠幫助用戶獲取顏色信息,并進行顏色選擇、識別和調整的工具,以下將從其常見類型、使用場景及部分軟件工具這幾個維度展開介紹…

Git 使用的全流程以及SourceTree工具的使用操作和忽略文件的配置

1. 安裝 Git 要使用 Git&#xff0c;首先得在你的系統上安裝它。你可以按照不同操作系統的安裝指南來操作&#xff1a; Windows&#xff1a;訪問 Git 官方下載頁面&#xff0c;下載安裝程序并運行。 macOS&#xff1a;可以使用 Homebrew 來安裝&#xff0c;命令為 brew inst…

《深入理解Linux網絡》筆記

《深入理解Linux網絡》筆記 前言參考 前言 前段時間看了《深入理解Linux網絡》這本書&#xff0c;雖然有些地方有以代碼充篇幅的嫌疑&#xff0c;但總體來說還是值得一看的。在這里簡單記錄一下筆記&#xff0c;記錄下對網絡新的理解。 內核是如果接受網絡包的&#xff1f; 如…

數倉-可累計,半累加,不可累加指標,是什么,舉例說明及解決方案

目錄 1. 可累計指標定義&#xff1a;舉例&#xff1a;解決方案&#xff1a; 2. 半累加指標定義&#xff1a;舉例&#xff1a;解決方案&#xff1a; 3. 不可累加指標定義&#xff1a;舉例&#xff1a;解決方案&#xff1a; 4. 總結對比5. 實際場景中的注意事項 這是數據倉庫設計…

NestJS 的核心構建塊有哪些?請簡要描述它們的作用(例如,Modules, Controllers, Providers)

NestJS 核心構建塊解析&#xff08;Modules、Controllers、Providers&#xff09; NestJS 是一個基于 TypeScript 的漸進式 Node.js 框架&#xff0c;核心設計借鑒了 Angular 的模塊化思想。下面從實際開發角度解析它的三大核心構建塊&#xff0c;并附代碼示例和避坑指南。 一…

vue2 上傳pdf,拖拽蓋章,下載圖片

效果圖片&#xff1a; 不多廢話上代碼&#xff1a; <template><div class"pdf-stamp" onbeforecopyreturn false onselectdocument.selection.empty() ondragstartreturn false onselectstart return false ><div class"scroll-box" scro…

理性地傾聽與表達:檢索算法的語言學改進

論文標題 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 論文地址 https://arxiv.org/pdf/2505.03676 代碼地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎薩克雷大學&#xff0c;索邦大學&#xff…

MySQL及線程關于鎖的面試題

目錄 1.了解過 MySQL 死鎖問題嗎&#xff1f; 2.什么是線程死鎖&#xff1f;死鎖相關面試題 2.1 什么是死鎖&#xff1a; 2.2 形成死鎖的四個必要條件是什么&#xff1f; 2.3 如何避免線程死鎖&#xff1f; 3. MySQL 怎么排查死鎖問題&#xff1f; 4.Java線上死鎖問題如…

【Reality Capture 】Reality Capture1.5中文版安裝教程(附安裝包下載)

文章目錄 一、Reality Capture1.5中文版安裝教程二、拷貝中文補丁三、Reality Capture1.5中文版下載地址一、Reality Capture1.5中文版安裝教程 1. Reality Capture v1.4.0漢化版安裝包下載并解壓 2. 運行EpicInstaller-15.17.1-4a91a118786f4c2aa3c0093b23f83863.msi 3. 更改…