欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud Nacos集群搭建過程詳解

 更新時間:2024年02月18日 16:01:03   作者:Damon小智  
Nacos集群不僅僅是服務注冊中心,還在微服務架構中發(fā)揮著關鍵的角色,支持多種場景下的服務治理和協(xié)調(diào),本文介紹了如何在SpringCloud環(huán)境中搭建Nacos集群,為讀者提供了一份清晰而詳盡的指南,通過逐步演示每個關鍵步驟,讀者能夠輕松理解并操作整個搭建過程

本文詳細介紹了如何在SpringCloud環(huán)境中搭建Nacos集群,為讀者提供了一份清晰而詳盡的指南。通過逐步演示每個關鍵步驟,包括安裝、配置以及Nginx的負載均衡設置,讀者能夠輕松理解并操作整個搭建過程。 

一、Nacos集群示意圖

Nacos(Naming and Configuration Service)是一個用于服務發(fā)現(xiàn)、動態(tài)配置管理以及可視化服務管理的開源平臺。Nacos支持構建彈性的、動態(tài)的、易于維護的微服務架構,并為大規(guī)模微服務體系的管理提供了完整的解決方案。在Nacos的集群視圖中,Nacos可以通過橫向擴展的方式構建多個節(jié)點,形成一個高可用的集群,以確保系統(tǒng)的穩(wěn)定性和可靠性。

 Nacos集群特點:

特點特點詳述
節(jié)點同步集群中的各個節(jié)點能夠相互同步數(shù)據(jù),確保配置信息和服務實例的一致性。
負載均衡Nacos集群可以通過負載均衡機制,將服務請求合理分發(fā)到各個節(jié)點,提高系統(tǒng)的整體性能和吞吐量。
高可用性Nacos集群通過多節(jié)點的部署,實現(xiàn)高可用性,即使某個節(jié)點發(fā)生故障,集群仍能保持正常運行。
水平擴展集群中的節(jié)點可以隨著需求的增加而動態(tài)擴展,實現(xiàn)系統(tǒng)的橫向擴展,以適應不斷增長的服務規(guī)模。
故障轉移集群中的節(jié)點能夠感知其他節(jié)點的狀態(tài),當某個節(jié)點發(fā)生故障時,其他節(jié)點可以接管其工作,確保系統(tǒng)的連續(xù)性。

通過Nacos的集群視圖,可以更好地管理和維護微服務架構,提供了一個穩(wěn)定、高效、可靠的服務治理平臺。

二、Nacos集群搭建

1、安裝Nacos

 首先,我們需要從 Nacos 的官方網(wǎng)站下載發(fā)布版本。下載地址:Releases · alibaba/nacos · GitHub

選擇合適的版本并下載,解壓縮得到 Nacos 的安裝包。 

在解壓后的 Nacos 目錄中,找到 bin 文件夾。

用寫字板編輯 startup.cmd,將 set MODE= "cluster" 修改為:

set MODE= "standalone"

這將在啟動 Nacos Server 時,默認使用 standalone 模式運行。

修改完成后,切換 cmd 到 bin 目錄下啟動 Nacos Server:

C:\Users\Damon.Liu>d:
D:\>cd D:\Tools\Nacos\bin
D:\Tools\Nacos\bin>startup.cmd -m standalone

這里提醒我需要配一個 java8以上 的 JAVA_HOME 環(huán)境變量。

簡單配一下:

再次嘗試啟動 Nacos,這次成功了!

2、復制客戶端

復制兩份Nacos的客戶端,用端口號命名做區(qū)分。

注意端口號需要最少間隔一位,原因是 Nacos 2.0 之后,啟動 Nacos 時會占用 +1000/1001 兩個端口,如果相鄰,會導致啟動了一個 Nacos 之后,啟動不了相同端口的另一個 Nacos。

官方文檔說明如下:

所以,我們命名為 Nacos_8844、Nacos_8846,間隔兩位,同時和默認的 8848 端口的 Nacos 區(qū)分開來,方便我們辨認。

下面,對三個客戶端分別進行修改。

3、創(chuàng)建Nacos數(shù)據(jù)庫

MySQL 創(chuàng)建名為 Nacos 的數(shù)據(jù)庫。

將 conf 文件夾下的 mysql-schema.sql 導入到這個庫里。

4、修改每個客戶端application.properties

① 修改端口號

首先,修改三個客戶端為不同的端口號。

端口在 conf 目錄下的 application.properties 下修改:

② 修改數(shù)據(jù)庫連接信息 

放開數(shù)據(jù)庫的三處注釋。

這里有個數(shù)據(jù)庫連接數(shù),我們就一個數(shù)據(jù)庫所以填1;

下面的 jdbc 連接信息,改為我們數(shù)據(jù)庫的賬號密碼,連接的就是我們剛剛創(chuàng)建的 Nacos 數(shù)據(jù)庫。

5、修改每個客戶端集群配置

再對每個客戶端 conf 目錄下的 cluster.conf.example 文件復制一份,改名為 cluster.conf。

修改復制出來的 cluster.conf 文件,把三個 nacos 服務端地址都添加到里面:

192.168.0.107:8844
192.168.0.107:8846
192.168.0.107:8848

?啟動三個nacos服務端,如果之前是單機模式運行的,修改過啟動器的代碼,則需要改回來。

比如我的 startup.cmd 里之前指定了默認啟動方式,這里需要修改這一行為:

set MODE= "cluster"

6、逐一啟動Nacos服務

修改之后,我們逐一雙擊 Stratup.cmd 啟動 Nacos:

?啟動成功之后我們可以訪問已經(jīng)啟動的 Nacos 控制臺查看:localhost:8848/nacos

?三、Nginx對Nacos反向代理

1、下載解壓Nginx

訪問 Nginx官網(wǎng)(nginx.org/en/download.html) 下載最新的穩(wěn)定版本。

?2、修改默認端口

解壓Nginx壓縮包好后,我們來修改Nginx的默認端口。Nginx的配置文件是conf目錄下的nginx.conf,默認配置的nginx監(jiān)聽的端口為80,根據(jù)端口占用情況,我們可以修改位其他端口,這里我修改位40。

修改之前我們可以輸入cmd指令,查詢端口占用狀態(tài):

#查看80端口是否被占用的命令是:
netstat -ano | findstr 0.0.0.0:80
netstat -ano | findstr "80"

如果被占用了,我們可以修改 Nginx\conf\nginx.conf 文件里的監(jiān)聽端口號,來指定默認端口。

比如,我這里換為40端口。

但建議大家還是給 Nginx 80端口,默認端口最終我還是用的默認80端口。 

3、啟動Nginx

接下來,我們啟動Nginx,驗證服務是否成功開啟.。雙擊根目錄下的nginx.exe,雙擊后一個黑色的彈窗一閃而過就消失了,啟動就完成了。

然后我們訪問80端口,看到Nginx服務已經(jīng)成功運行了。

4、配置對Nacos的反向代理

我們這里要配置 Nginx\conf\nginx.conf 文件。
listen:監(jiān)聽的端口;
(監(jiān)聽端口需要避免占用,尤其是 win-server,需要關閉IIS在80端口的默認項目)
server_name:監(jiān)聽的域名(填寫 localhost 即為公網(wǎng)IP);
location 里 proxy_pass:設置轉發(fā)的目標地址;

upstream nacos-cluster {
    server 127.0.0.1:8844;
	server 127.0.0.1:8846;
	server 127.0.0.1:8848;
}
server {
    listen       80;
    server_name  localhost;
    location /nacos {
        proxy_pass http://nacos-cluster;
    }
}

這里給出的例子的意思是:當收到 /naocs 請求時,自動轉發(fā)請求到 Nacos 集群,通過負載均衡指定具體哪個端口的 Nacos 響應。

修改完配置后,我們要停止之前的 Nginx 服務,重啟后配置才能刷新。

5、瀏覽器訪問測試

訪問 localhost/nacos,如果顯示是 Nacos 的控制臺頁面,則說明配置成功。

四、Nacos控制臺新建配置

1、Nacos控制臺新建配置

我們訪問 Nacos 的控制臺頁面,因為我們剛剛用 Nginx 轉達到集群,所以 Nacos 控制臺地址變?yōu)?nbsp;localhost/nacos,我們點擊新建配置。

配置起名為:test-service.yaml,類型選為 YAML 類型,配置內(nèi)容我們寫一個時間格式:

pattern:
    dateformat: yyyy-MM-dd HH:mm:ss

2、查看配置是否存入數(shù)據(jù)庫

我們打開我們剛剛創(chuàng)建的 Nacos 數(shù)據(jù)庫,查看 config-info 表:

可以看到配置已經(jīng)寫入表內(nèi)了。

至此,我們的Nacos集群搭建成功!

五、Nacos集群的應用場景

Nacos集群在微服務架構中具有廣泛的應用場景,其中一些關鍵的應用場景包括:

場景場景下功能描述
服務注冊
服務發(fā)現(xiàn)
Nacos集群作為注冊中心,可以用于服務的注冊與發(fā)現(xiàn)。微服務在啟動時將自身注冊到Nacos集群,其他微服務通過Nacos發(fā)現(xiàn)和調(diào)用這些服務。
動態(tài)配置管理Nacos提供了分布式配置管理功能,允許在運行時動態(tài)調(diào)整應用程序的配置。Nacos集群可以用于集中式管理配置信息,實現(xiàn)配置的動態(tài)更新和熱加載。
健康檢查
故障恢復
Nacos集群通過定期的健康檢查,能夠檢測服務的狀態(tài)并及時發(fā)現(xiàn)故障節(jié)點。當某個微服務發(fā)生故障時,Nacos能夠自動剔除不可用的節(jié)點,確保系統(tǒng)的高可用性。
動態(tài)路由基于Nacos集群,可以實現(xiàn)動態(tài)路由策略,根據(jù)服務的狀態(tài)和負載情況,動態(tài)調(diào)整請求的路由,實現(xiàn)流量的均衡和優(yōu)化。
分布式鎖
與協(xié)調(diào)
Nacos提供了分布式鎖和協(xié)調(diào)的功能,可以應用于分布式系統(tǒng)中的同步、協(xié)作和資源競爭場景,確保多個微服務之間的有序執(zhí)行。
事件驅動架構Nacos支持事件監(jiān)聽機制,可以通過訂閱Nacos集群中的事件,實現(xiàn)微服務架構中的事件驅動,提高系統(tǒng)的解耦性和可維護性。

綜上所述,Nacos集群不僅僅是服務注冊中心,還在微服務架構中發(fā)揮著關鍵的角色,支持多種場景下的服務治理和協(xié)調(diào)。

到此這篇關于SpringCloud Nacos集群搭建的文章就介紹到這了,更多相關SpringCloud Nacos集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java中串行流和并行流區(qū)別小結

    java中串行流和并行流區(qū)別小結

    串行流和并行流是兩種處理流操作的方式,串行流適用于小數(shù)據(jù)量且簡單的數(shù)據(jù)處理,并行流則適用于大規(guī)模數(shù)據(jù)處理和需要并行計算的場景,能夠利用多線程并行處理,選擇使用哪種流取決于數(shù)據(jù)量大小、處理復雜度和是否需要并行計算,下面就來具體介紹一下兩者的區(qū)別
    2024-09-09
  • idea中cherry pick的用法

    idea中cherry pick的用法

    Cherry-Pick可以將一個分支的某些commit,合并到另一個分支,本文給大家分享idea中cherry pick的用法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • JAVA模擬多線程給多用戶發(fā)送短信

    JAVA模擬多線程給多用戶發(fā)送短信

    這篇文章主要介紹了JAVA模擬多線程給多用戶發(fā)送短信,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java 爬蟲數(shù)據(jù)異步加載如何解決

    Java 爬蟲數(shù)據(jù)異步加載如何解決

    這篇文章主要介紹了Java 爬蟲遇上數(shù)據(jù)異步加載,試試這兩種辦法!問題如何解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • java編譯器和JVM的區(qū)別

    java編譯器和JVM的區(qū)別

    在本篇文章里小編給大家整理的是一篇關于java編譯器和JVM的區(qū)別的相關內(nèi)容,有興趣的朋友們可以學習下。
    2020-12-12
  • Java8中Map常用的遍歷方式

    Java8中Map常用的遍歷方式

    這篇文章主要給大家介紹了關于Java8中Map常用的遍歷方式,map屬于java中的頂級接口之一,區(qū)別于list,map是鍵值對的形式存在,需要的朋友可以參考下
    2023-07-07
  • Java中如何將list轉為樹形結構

    Java中如何將list轉為樹形結構

    這篇文章主要介紹了Java中如何將list轉為樹形結構,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • java定時任務框架elasticjob詳解

    java定時任務框架elasticjob詳解

    這篇文章主要介紹了java定時任務框架elasticjob詳解,Elastic-Job是ddframe中dd-job的作業(yè)模塊中分離出來的分布式彈性作業(yè)框架。該項目基于成熟的開源產(chǎn)品Quartz和Zookeeper及其客戶端Curator進行二次開發(fā)。,需要的朋友可以參考下
    2019-06-06
  • SpringMVC使用MultipartFile實現(xiàn)文件上傳

    SpringMVC使用MultipartFile實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了SpringMVC使用MultipartFile實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • java面試LruCache?和?LinkedHashMap及算法實現(xiàn)

    java面試LruCache?和?LinkedHashMap及算法實現(xiàn)

    這篇文章主要為大家介紹了java面試LruCache?和?LinkedHashMap及算法實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論