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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务器Nacos集群搭建及使用总结

發(fā)布時間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器Nacos集群搭建及使用总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

title: 服務(wù)器Nacos集群搭建及使用總結(jié)
date: 2022-02-07 23:46:19
tags:

  • 服務(wù)器
  • Nacos
    categories:
  • 服務(wù)器
    cover: https://cover.png
    feature: false

1. 架構(gòu)圖


實際使用:

2. 下載

官網(wǎng)地址:home (nacos.io)

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

選擇對應(yīng)版本進行下載,下載有可能會很慢

3. 單機模式

1、下載完成后上傳到服務(wù)器

2、解壓文件

tar -zxvf nacos-server-2.2.0.tar.gz

3、重命名一下文件(非必要)

mv nacos nacos-2.2.0

4、進入 Nacos 的 conf 目錄下,在 Nacos 配置文件 application.properties 里設(shè)置端口為 3333(默認為 8848),并且設(shè)置 MySQL 連接屬性進行持久化配置,這里的 nacos_config 數(shù)據(jù)庫使用 Nacos 自帶的 mysql-schema.sql 數(shù)據(jù)庫腳本構(gòu)建

server.port=3333########################################################### spring.datasource.platform=mysqldb.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=xxx

5、進入 Nacos 的 bin 目錄下,直接執(zhí)行如下命令即可啟動

sh startup.sh -m standalone 或者 ./startup.sh -m standalone

由于 Nacos 默認模式為 cluster,即集群模式,需設(shè)置啟動參數(shù) -m standalone 為單機模式,也可在 application.properties 配置文件里修改默認模式為單機模式,則可直接通過 ./startup.sh 啟動單機模式

4. 集群模式

4.1 配置 Nacos

前 4 步與單機版同

5、復(fù)制 cluster.conf.example 文件為 cluster.conf

cp cluster.conf.example cluster.conf

6、在集群配置文件 cluster.conf 里配置集群節(jié)點,IP:Port,IP 為服務(wù)器 IP 地址,端口為 Nacos 的端口,即 application.properties 配置文件里的 server.port=3333,包括其他集群節(jié)點的端口,同時在服務(wù)器防火墻中開放需要訪問的端口 3333、4444、5555

10.0.4.9:3333 10.0.4.9:4444 10.0.4.9:5555

7、以集群模式啟動,./startup.sh

可以看到 3333 的節(jié)點已經(jīng)啟動

8、如法炮制,再復(fù)制兩份 Nacos,在 application.properties 配置文件里分別設(shè)置端口為 4444、5555,這樣就有了三個 Nacos 文件,端口分別為 3333、4444、5555,并且在 cluster.conf 配置文件里都配置了這三個節(jié)點

9、分別啟動三個 Nacos,假如服務(wù)器內(nèi)存不夠,會出現(xiàn)只能啟動一兩個,三個服務(wù)不能全部啟動的情況,或者啟動另一個之后,之前啟動的服務(wù)關(guān)閉,可以修改 startup.sh 文件的啟動參數(shù)數(shù)值大小,改小一點

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

4.2 配置 Nginx

1、進入 Nginx 的 conf 目錄下修改配置文件 nginx.conf

# 代理轉(zhuǎn)發(fā)地址 upstream cluster{server 124.222.xxx.90:3333;server 124.222.xxx.90:4444;server 124.222.xxx.90:5555; }server {listen 1111; # 監(jiān)聽端口server_name 124.222.xxx.90; # 訪問地址#charset koi8-r;#access_log logs/host.access.log main;location / {#root html;#index index.html index.htm;proxy_pass http://cluster;} }

2、在服務(wù)器的防火墻里開放監(jiān)聽端口,即 1111

3、進入 Nginx 的 sbin 目錄下,執(zhí)行命令啟動 Nginx

./nginx 或指定配置文件啟動:./nginx -c /usr/nginx/conf/nginx.conf

假如 Nginx 已啟動,則執(zhí)行

./nginx -s reload

重新加載 Nginx 即可

4、訪問 124.222.xxx.90:1111/nacos,其實就是轉(zhuǎn)發(fā)到訪問 124.222.xxx.90:3333/nacos 或 124.222.xxx.90:4444/nacos 或 124.222.xxx.90:5555/nacos

5、查看 Nacos 的啟動情況,在集群節(jié)點里可以看到三個節(jié)點全是 UP 的狀態(tài),由于服務(wù)器內(nèi)存原因,這里只啟動了兩個,內(nèi)存不夠了

5. 微服務(wù)注冊進 Nacos

5.1 引入依賴

這里用的是 Spring Cloud,假如只使用 Spring Boot 參考官網(wǎng)的 Spring Boot 快速開始:Nacos Spring Boot 快速開始

按照對應(yīng)關(guān)系來選擇對應(yīng)的版本,這里使用的版本是 Spring Boot 2.7.7、Spring Cloud Alibaba 2021.0.4.0、Spring Cloud 2021.0.4

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>

5.2 修改配置文件

spring:application:name: discovery-configcloud:nacos:discovery:server-addr: 124.222.xxx.90:3333

5.3 添加注解

在啟動類上添加 Spring Cloud 原生注解 @EnableDiscoveryClient 開啟服務(wù)注冊發(fā)現(xiàn)功能

@SpringBootApplication @EnableDiscoveryClient public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);} }

5.4 注意

Nacos2.0 版本相比 1.X 新增了 GRPC 的通信方式,Nacos 2.0 的 GRPC 端口都是通過主端口的偏移量產(chǎn)生,GRPC 端口 = Nacos 主端口 + 1000,因此還要額外開放 主端口 + 1000 的端口,如主端口為 3333,則還需開放端口 4333,這里為客戶端 GRPC 請求服務(wù)端端口。假如服務(wù)端 GRPC 請求服務(wù)端接口,還需開放偏移量為 1001 的端口,即 4334

否則會報 com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING 異常

5.5 啟動

啟動主啟動類后,即可在 Nacos 管理頁面看到服務(wù)已經(jīng)被注冊了進來

6. Nacos 作為配置中心

在上面注冊中心的基礎(chǔ)上

6.1 引入依賴

由于在 SpringCloud 2020.* 版本把 bootstrap 禁用了,導(dǎo)致在讀取文件的時候讀取不到報錯 No spring.config.import property has been defined,所以要重新引入 bootstrap 依賴

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

6.2 配置

這里需要兩個配置文件 bootstrap.yml 和 application.yml,在項目初始化時,要保證先從配置中心進行配置拉取,拉取配置之后,才能保證項目的正常啟動。而 SpringBoot 中配置文件的加載是存在優(yōu)先級順序的,bootstrap 優(yōu)先級高于 application

1、bootstrap.yml

server:port: 9001spring:application:name: discovery-configcloud:nacos:discovery:server-addr: 124.222.xxx.90:3333config:server-addr: 124.222.xxx.90:3333file-extension: yaml # 指定 yaml 格式的配置

2、application.yml

spring:profiles:active: dev # 表示開發(fā)環(huán)境

6.3 ConfigController

通過 SpringCloud 原生注解 @RefreshScope 實現(xiàn)配置的自動更新

@RestController @RefreshScope public class ConfigController {@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;} }

6.4 持久化配置

在 Nacos 的配置列表里新建一個配置,這里的 Data ID,計算公式為:

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

在前面已經(jīng)配置好了持久化配置屬性,配置信息會保存到數(shù)據(jù)庫中

6.5 查看配置

啟動服務(wù),訪問 http://localhost:9001/config/info,即可讀取到配置中心的配置信息

更新一下配置信息

可以發(fā)現(xiàn)讀取的配置信息也隨之動態(tài)刷新

6.6 加載方案

6.61 Data ID 方案

默認空間 + 默認分組 + Data ID,主要通過不同的 Data ID 來進行區(qū)分,即上面的配置

6.6.2 Group 方案

通過 Group 實現(xiàn)環(huán)境區(qū)分

1、新建 Group

2、增加 group 配置

bootstrap.yml

server:port: 9001spring:application:name: discovery-configcloud:nacos:discovery:server-addr: 124.222.xxx.90:3333config:server-addr: 124.222.xxx.90:3333file-extension: yamlgroup: DEV_GROUP

application.yml

spring:profiles:# active: dev # 表示開發(fā)環(huán)境active: info # 表示開發(fā)環(huán)境

6.6.3 Namespace 方案

1、新建命名空間

2、選擇該命名空間進行配置管理

3、配置命名空間

bootstrap.yml

server:port: 9001spring:application:name: discovery-configcloud:nacos:discovery:server-addr: 124.222.118.90:8848config:server-addr: 124.222.118.90:8848file-extension: yamlnamespace: a404abf6-f7ca-40f5-a106-2a892793fb48

總結(jié)

以上是生活随笔為你收集整理的服务器Nacos集群搭建及使用总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。