服務注冊配置中心Nacos-創(chuàng)新互聯(lián)

文章目錄
  • 一. 前言
  • 二. 下載安裝
      • 1. 下載安裝包
      • 2. Windows環(huán)境安裝
      • 3. Linux環(huán)境安裝
        • 1. 單擊模式啟動
        • 2. 集群模式啟動
        • 3. 遠程web控制
        • 4. 注冊為系統(tǒng)服務
  • 三. 基本使用
      • 1. 添加依賴
      • 2. 服務注冊
      • 3. 配置實例集群屬性
      • 4. 實例權(quán)重負載均衡
      • 5. 環(huán)境隔離
      • 6. 臨時實例與非臨時實例
  • 四. Nacos配置管理
      • 1. Nacos實現(xiàn)配置熱更新
      • 2. Nacos多環(huán)境配置共享
  • 五. Nacos集群搭建
      • 1. 搭建數(shù)據(jù)庫
      • 2. 啟動
      • 3. 安裝Nginx

公司主營業(yè)務:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出皋蘭免費做網(wǎng)站回饋大家。
一. 前言

PS: 本篇博客為作者學習筆記實際技術(shù)參考意義不大,小編將持續(xù)更新完善本篇文章。
Nacos服務注冊配置中心,一個更易于構(gòu)建云原生應用的動態(tài)服務發(fā)現(xiàn),配置管理和服務管理平臺,屬于Springcloud Alibaba 體系中的組件之一,也是目前企業(yè)開發(fā)中最流行的服務注冊與配置中心。
在這里插入圖片描述
更多詳細信息各位小伙伴可以參照Springcloud Alibaba官網(wǎng): 點擊跳轉(zhuǎn)官網(wǎng)
Nacos源碼地址: 點擊跳轉(zhuǎn)源碼地址
Nacos官網(wǎng)地址: 點擊跳轉(zhuǎn)官網(wǎng)
一些注冊中心特性對比:
在這里插入圖片描述

二. 下載安裝 1. 下載安裝包

Nacos既可以在Windows上使用,也可以在Linux上面使用,下面兩種系統(tǒng)的Nacos安裝小編都會介紹到,首先我們要準備好Nacos的安裝包,點進入Nacos的倉庫 點擊跳轉(zhuǎn)。
點擊 【發(fā)行版】就可以看到Nacos的全部歷史版本
在這里插入圖片描述
點擊 【標簽】可以選擇想要的版本下載
在這里插入圖片描述
選擇好版本點擊最右邊的【下載】后翻到最下面就可以看到對應的下載文件,【zip】則是windows版本 【tar.gz】就是Linux使用的版本。
在這里插入圖片描述

2. Windows環(huán)境安裝

準備好Windows環(huán)境下的安裝包后,就可以開始Windows環(huán)境下Nacos的安裝了。
將準備好的安裝包解壓到任意目錄下(最好是全英文的路徑)解壓后文件夾內(nèi)結(jié)構(gòu)如下:
在這里插入圖片描述
bin目錄是存放啟動腳本的目錄 conf目錄是存放Nacos配置文件的目錄。
關(guān)于端口配置,Nacos的默認端口是8848,如果你電腦上的其它進程占用了8848端口,請先嘗試關(guān)閉該進程。如果無法關(guān)閉占用8848端口的進程,也可以進入nacos的conf目錄,修改配置文件中Nacos默認啟動占用的端口:
在這里插入圖片描述
在這里插入圖片描述
確認端口沒有問題后就可以進入bin目錄啟動cmd窗口,使用下面的命令啟動Nacos:

startup.cmd -m standalone

也可以直接雙擊startup.cmd文件啟動Nacos
在這里插入圖片描述
看到上面這個樣子就是啟動成功了,也標明了啟動占用的端口和后臺的訪問地址。
我們用瀏覽器直接訪問http://127.0.0.1:8848/nacos即可,正常情況下會看到下面的內(nèi)容:
在這里插入圖片描述
默認的用戶名和密碼都是 nacos 直接登錄即可,至此Windows環(huán)境下安裝Nacos就完成了

3. Linux環(huán)境安裝

對于Linux環(huán)境下Nacos安裝相對于Windows環(huán)境下的安裝要復雜一點,首先要準備好Linux版本的Nacos安裝包,其次Nacos依賴于JDK運行,索引Linux上也需要安裝JDK才行。
沒有安裝java環(huán)境的小伙伴可以參考小編這篇文章 點擊跳轉(zhuǎn) 配置好java環(huán)境后就可以開始我們的安裝了。
首先將我們準備好的安裝包上傳到任意目錄,列如/usr/local/然后使用下面的命令進行解壓:

tar -xvf nacos-server-1.4.1.tar.gz

然后執(zhí)行下面的命令刪除安裝包:

rm -rf nacos-server-1.4.1.tar.gz
1. 單擊模式啟動

首先進入到已經(jīng)解壓好的Nacos目錄的bin目錄下:

cd /usr/local/nacos/bin

執(zhí)行下面的命令啟動Nacos:

sh startup.sh -m standalone

下面的情況是正常啟動了
在這里插入圖片描述
停止Nacos的命令:

sh shutdown.sh
2. 集群模式啟動

集群模式的啟動需要先創(chuàng)建數(shù)據(jù)庫,腳本位置:/usr/local/nacos/conf/nacos-mysql.sql利用該腳本創(chuàng)建數(shù)據(jù)庫。
緊接著我們需要配置一下Nacos的配置文件:

cd /usr/local/nacos/conf
vim application.properties

修改下面的內(nèi)容(將原來的注釋放開,)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://10.114.12.177:3306/nacos?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

注意:此處的ip地址、端口號、數(shù)據(jù)庫名、賬號和密碼都需要按照自己的實際情況進行修改。
啟動:

cd /usr/local/nacos/bin
sh startup.sh

查看啟動日志:

cd /usr/local/nacos/logs
vim start.out
3. 遠程web控制

我們可以執(zhí)行下面的命令放行當前主機的8848端口,以便我們訪問遠程的web控制臺:

firewall-cmd --zone=public --add-port=8848/tcp --permanent

放行完端口再執(zhí)行下面的命令重啟一下當前主機的防火墻:

firewall-cmd --reload

緊接著我們就可以訪問http://當前主機地址:8848/nacos就會出現(xiàn)下面的情況:
在這里插入圖片描述
默認的用戶名是: nacos 默認的密碼也是: nacos

4. 注冊為系統(tǒng)服務

為了更加方便的管理Nacos,最好是將其注冊為系統(tǒng)服務
首先使用下面的命令修改 /usr/local/nacos/bin/startup.sh 啟動文件

vim /usr/local/nacos/bin/startup.sh

在這里插入圖片描述
將路徑修改為當前系統(tǒng)中存放jdk的路徑:
在這里插入圖片描述
使用下面的命令創(chuàng)建并編輯nacos.service文件:

vim /lib/systemd/system/nacos.service

向文件中添加下面的內(nèi)容:

[Unit]
Description=nacos
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
 
[Install]  
WantedBy=multi-user.target

保存退出后執(zhí)行下面的命令重載一下系統(tǒng)服務:

systemctl daemon-reload

就完成了Nacos的系統(tǒng)服務注冊,服務名就叫nacos
之后我們就可以使用操作系統(tǒng)服務的命令對Nacos進行操作了,下面是一些常用命令:

systemctl start nacos.service // 啟動nacos服務
systemctl stop nacos.service // 停止nacos服務
systemctl status nacos.service // 查看nacos服務狀態(tài)
systemctl enable nacos.service // 設(shè)置為開機自啟
systemctl restart nacos.service // 重啟nacos服務
systemctl reload nacos.service // 重載nacos服務 (推薦使用)
三. 基本使用 1. 添加依賴

要想使用Nacos首先要在父工程的POM文件中添加下面的依賴:

com.alibaba.cloudspring-cloud-alibaba-dependencies2.2.5.RELEASEpomimport

在這里插入圖片描述
然后修改子工程的POM文件,將下面的依賴加入其中:

com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
2. 服務注冊
spring:
	application:
     name: orderservice  # 服務名
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服務地址

再啟動服務就可以在后臺管理界面中的【服務列表】選項卡的子選項卡 【服務列表】中找到我們注冊的服務。
在消費者進行服務調(diào)用的時候也就可以通過服務名進行調(diào)用了(orderservice代替id地址和端口),且Nacos自帶了負載均衡。

3. 配置實例集群屬性

配置當前服務的實例歸屬于哪個集群
修改模塊的Yml配置文件:

spring:
	application:
     name: orderservice  # 服務名 可以通過相同的服務名部署多個實例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服務地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名

在web控制臺中可以看到集群的信息,再編輯Yml配置文件設(shè)置負載均衡的1Rule為NacosRule,這個規(guī)則優(yōu)先會尋找與自己同集群的服務,本地集群找不到提供者,才去其它集群尋找,并且會報警告。
確定了可用實例列表后,再采用隨機負載均衡挑選實例。

userservice:
  ribbon:
  	# 優(yōu)先請求同集群的實例
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
4. 實例權(quán)重負載均衡

實際部署中會出現(xiàn)這樣的場景:服務器設(shè)備性能有差異,部分實例所在機器性能較好,另一些較差,我們希望性能好的機器承擔更多的用戶請求。
Nacos提供了權(quán)重配置來控制訪問頻率,權(quán)重越大則訪問頻率越高。
在這里插入圖片描述
默認權(quán)重都是1,在服務升級和優(yōu)化時可以將該服務權(quán)重設(shè)置成0,該服務就不會再收到請求。

5. 環(huán)境隔離

Nacos中服務存儲和數(shù)據(jù)存儲的最外層都是一個名為namespacel的東西,用來做最外層隔離。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
修改實例的命名空間需要修改服務的配置文件,默認都是存儲在public(保留空間中):

spring:
	application:
     name: orderservice  # 服務名 可以通過相同的服務名部署多個實例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服務地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名
	 	  namespace: 4d6ce343-9e1b-44df-a90f-2cf2b6b3d177 # dev環(huán)境 命名空間Id

在這里插入圖片描述
注意: 只有相同命名空間的服務實例才可以相互調(diào)用

6. 臨時實例與非臨時實例

默認在Nacos中注冊的實例都是臨時實例,那么臨時實例與非臨時實例有什么區(qū)別呢?
臨時實例: 采用心跳檢測(服務每隔一段時間就會發(fā)送一次請求給注冊中心Nacos確保實例的可用性)當長時間沒有向Nacos發(fā)送心跳請求Nacos就會在服務列表中將該實例剔除。
非臨時實例: 不會擁有心跳檢測機制,而是由Nacos主動發(fā)送請求詢問實例,如果檢測到非臨時實例Nacos不會將其剔除,而是標記為不健康狀態(tài)除非手動刪除,否則會一直等待其恢復健康狀態(tài)。
對于配置實例是否為臨時實例需要配置實例的YAM配置文件:

spring:
	application:
     name: orderservice  # 服務名 可以通過相同的服務名部署多個實例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服務地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名
	 	  namespace: 4d6ce343-9e1b-44df-a90f-2cf2b6b3d177 # dev環(huán)境 命名空間Id
	 	  ephemeral: false # 是否為臨時實例 默認是true
四. Nacos配置管理 1. Nacos實現(xiàn)配置熱更新

Nacos處理可以擔任服務注冊中心,還可以擔任服務的配置中心,首先我們需要在模塊的POM文件中添加Nacos的配置管理依賴:

com.alibaba.cloudspring-cloud-starter-alibaba-nacos-config

然后我們在后臺管理界面中點擊【配置管理】的【配置列表】模塊右上角的加號先添加一個。
在這里插入圖片描述
【Data ID】其實就是配置文件名 (必須唯一) 一般以“服務名-運行環(huán)境.后綴” 作為文件名
列如:userservice-dev.yaml
【Group】組ID 這個自定義
【配置格式】一般都是使用YAML,根據(jù)后綴自定義
【配置內(nèi)容】根據(jù)選擇的文件格式書寫有熱更新需求的配置
在這里插入圖片描述
修改完成后點擊右下角的【發(fā)布】即可,由于在讀取Nacos中的配置文件之前我們實例就需要知道Nacos的服務地址等信息,所以我們一般將Naocs的配置放在加載優(yōu)先級更高的bootstrap.yml文件中
在這里插入圖片描述
: bootstrap.yml又叫引導文件,加載優(yōu)先級比application.yml要高
可以在resources目錄中添加一個bootstrap.yml,需要添加的配置如下:

spring:
  application:
    name: userservice # 服務名
  profiles:
    active: dev # 環(huán)境
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos地址
      config:
        file-extension: yaml # 文件后綴名

其中“服務名”、“環(huán)境”、“文件后綴名” 其實就是我們上面在后臺創(chuàng)建的配置文件名,相應的就會讀取后臺相應配置文件內(nèi)容,在項目中我們也可以使用value注解讀取配置文件中的內(nèi)容,列如:

@Value("${pattern.dateformat}")
 private String dateformat;

要想實現(xiàn)配置熱更新還差最后一步,Ncos中的配置文件變更后,微服務無需重啟就可以感知。不過需要通過下面兩種配置實現(xiàn):
在這里插入圖片描述
需要 prefix指定的前綴名跟變量名拼接和后臺管理系統(tǒng)中的屬性一致才可生效,一般第一種方式用的比較多。
在這里插入圖片描述

2. Nacos多環(huán)境配置共享

假設(shè)一個業(yè)務場景,一個配置在開發(fā)環(huán)境,生產(chǎn)環(huán)境都需要用到,那么每份配置都配置一次顯然是相當麻煩的。
在這里插入圖片描述
這樣無論是生產(chǎn)還是測試相同的配置都寫在userservice.yaml中,這樣給我們帶來了極大的便利

spring:
  application:
    name: userservice # 服務名
  profiles:
    active: dev # 環(huán)境
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos地址
      config:
        file-extension: yaml # 文件后綴名

這樣即可以讀取到userservice-dev.yaml 配置文件的內(nèi)容,也可以讀取到userservice.yaml配置文件中的內(nèi)容,即使環(huán)境為test環(huán)境也可以讀取到userservice.yaml配置文件的內(nèi)容。
如果兩個文件中有一個相同的屬性,或者說application.yml也有一個屬性相同,那么文件的加載優(yōu)先級是:

userservice-dev.yaml >userservice.yaml >application.yml
五. Nacos集群搭建

官方給出的Nacos集群圖:
請?zhí)砑訄D片描述
其中包含3個nacos節(jié)點,然后一個負載均衡器代理3個Nacos。這里負載均衡器可以使用nginx。
我們計劃的集群結(jié)構(gòu):
請?zhí)砑訄D片描述

三個nacos節(jié)點的地址:

節(jié)點ipport
nacos1192.168.150.18845
nacos2192.168.150.18846
nacos3192.168.150.18847

搭建集群的基本步驟:

  • 搭建數(shù)據(jù)庫,初始化數(shù)據(jù)庫表結(jié)構(gòu)
  • 下載nacos安裝包
  • 配置nacos
  • 啟動nacos集群
  • nginx反向代理
1. 搭建數(shù)據(jù)庫

Nacos默認數(shù)據(jù)存儲在內(nèi)嵌數(shù)據(jù)庫Derby中,不屬于生產(chǎn)可用的數(shù)據(jù)庫,官方推薦的最佳實踐是使用帶有主從的高可用數(shù)據(jù)庫集群
這里我們以單點的數(shù)據(jù)庫為例來講解。
將Nacos解壓后,首先啟動本機mysql,創(chuàng)建nacos數(shù)據(jù)庫,并在nacos_config數(shù)據(jù)庫下執(zhí)行nacos-mysql.sql腳本 (腳本存放位置nacos/cont/nacos-mysql.sql):

mysql>source /opt/nacos/cont/nacos-mysql.sql;

進入nacos的conf目錄,修改配置文件cluster.conf.example,重命名為cluster.conf:
然后添加內(nèi)容:

127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847

然后修改application.properties文件,添加數(shù)據(jù)庫配置:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123
2. 啟動

將nacos文件夾復制三份,分別命名為:nacos1、nacos2、nacos3
然后分別修改三個文件夾中的application.properties,
nacos1:

server.port=8845

nacos2:

server.port=8846

nacos3:

server.port=8847

然后我們就可以分別將他們都啟動起來

3. 安裝Nginx

關(guān)于Nginx的安裝小編的專欄里面有對應的文章。
修改conf/nginx.conf文件,配置如下:

upstream nacos-cluster {server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}
server {listen       80;
    server_name  localhost;

    location /nacos {proxy_pass http://nacos-cluster;
    }
}

而后在瀏覽器訪問:http://localhost/nacos即可。
代碼中application.yml文件配置如下:

spring:
  cloud:
    nacos:
      server-addr: localhost:80 # Nacos地址

實際部署時,需要給做反向代理的nginx服務器設(shè)置一個域名,這樣后續(xù)如果有服務器遷移nacos的客戶端也無需更改配置,Nacos的各個節(jié)點應該部署到多個不同服務器,做好容災和隔離。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享名稱:服務注冊配置中心Nacos-創(chuàng)新互聯(lián)
本文路徑:http://www.muchs.cn/article4/diejoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司定制網(wǎng)站、網(wǎng)站營銷、軟件開發(fā)、面包屑導航營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名