久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Nacos集群如何搭建

142次閱讀
沒有評論

共計 8005 個字符,預計需要花費 21 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Nacos 集群如何搭建,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

  一、Nacos 簡介

Nacos(Naming and Configuration Service) 致力于幫助您發現、配置和管理微服務。Nacos   提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。

詳情查看 Nacos 官方文檔 [1]

二、Nacos 安裝

1、Nacos 依賴

Nacos 基于 java 開發的,運行依賴于 java 環境。

依賴 64 bit JDK 1.8+,前往官網下載 JDK[2]

2、Nacos 安裝

下載編譯后壓縮包,最新穩定版本 [3]

unzip nacos-server-$version.zip  或者  tar -xvf nacos-server-$version.tar.gz cd nacos/bin

三、Nacos 部署

1、單實例部署

單實例部署不適合生產環境,單點故障是致命的。

Linux 單實例非集群模式啟動命令

startup.sh -m standalone

Linux 單實例非集群模式關閉命令

shutdown.sh

訪問 nacos 管理頁面,初始化用戶名密碼均為 nacos

Nacos 集群如何搭建

2、集群部署

1、集群架構

Nacos 集群如何搭建

高可用 Nginx 集群

Nacos 集群 (至少三個實例)

高可用數據庫集群 (取代 Nacos 內嵌數據庫)

2、本地虛擬機模擬集群部署

本地環境準備

Nacos 集群如何搭建

在本地 PC 機上利用 VMware workstation 虛擬出如上表所示的幾臺機器,其中 Nginx 和 MySQL   都是采用的單實例,僅做練習使用。

搭建步驟

初始化 nacos 必須的數據庫表并配置

找到 Nacos 安裝目錄下提供的數據庫腳本文件

Nacos 集群如何搭建

在 MySQL 實例創建 nacos_config 庫并導入腳本

Nacos 集群如何搭建

修改修改 Nacos 配置文件,指向 MySQL 實例,替換其內嵌數據庫

Nacos 集群如何搭建

#***************  切換 Nacos 內嵌數據庫平臺為 MySQL ***************# spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.15.141:3306/nacos_config?characterEncoding=utf8 connectTimeout=1000 socketTimeout=3000 autoReconnect=true useUnicode=true useSSL=false serverTimezone=UTC db.user=root db.password=123456

說明:三臺 nacos 實例都需要切換 MySQL 平臺,均需執行以上操作

nacos 集群配置

復制 cluster.conf 文件

Nacos 集群如何搭建

Nacos 集群配置,修改 cluster.conf 文件

[root@localhost conf]# vim ./cluster.conf #it is ip #example 192.168.15.145 192.168.15.147 192.168.15.148

說明:三臺 nacos 實例都需要做以上集群配置,至此關于 nacos 的配置結束了,可以嘗試以集群模式啟動三個 nacos 實例了

以集群模式分別啟動三個 nacos 實例

Nacos 集群如何搭建
Nacos 集群如何搭建

嘗試訪問 nacos 管理頁,測試三個實例是否正常

Nacos 集群如何搭建

說明:如果三個實例以集群模式正常啟動,那么分別訪問三個實例的管理頁就是展示以上登錄頁了。如果不能訪問,則可能防火墻未開放 nacos   服務的端口,可執行如下命令。

[root@localhost bin]# firewall-cmd --add-port=8848/tcp --permanent success [root@localhost bin]# firewall-cmd --reload success [root@localhost bin]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: ssh dhcpv6-client ports: 27017/tcp 8848/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@localhost bin]#

Nginx 配置

Nginx 安裝參考,Nginx 源碼安裝 [4]

修改 Nginx 配置文件 nginx.conf

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #nacos 集群負載均衡  upstream nacos-cluster { server 192.168.15.145:8848; server 192.168.15.147:8848; server 192.168.15.148:8848; } server { listen 80; server_name 192.168.15.146; location / { #root html; #index index.html index.htm; proxy_pass http://nacos-cluster; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

啟動 Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

微服務配置

微服務父 pom 配置

?xml version= 1.0  encoding= UTF-8 ?   project xmlns= http://maven.apache.org/POM/4.0.0  xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance  xsi:schemaLocation= http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd   modelVersion 4.0.0 /modelVersion   groupId com.atguigu.springcloud /groupId   artifactId cloud2020 /artifactId   version 1.0-SNAPSHOT /version   packaging pom /packaging   !--  模塊  --   modules   module cloud-alibaba-nacos-config-client-3377 /module   /modules   !--  統一管理 jar 版本  --   properties   project.build.sourceEncoding UTF-8 /project.build.sourceEncoding   maven.compiler.source 1.8 /maven.compiler.source   maven.compiler.target 1.8 /maven.compiler.target   junit.version 4.12 /junit.version   log4j.version 1.2.17 /log4j.version   lombok.version 1.16.18 /lombok.version   mysql.version 5.1.47 /mysql.version   druid.version 1.1.16 /druid.version   mybatis.spring.boot.version 1.3.0 /mybatis.spring.boot.version   /properties   !--  統一依賴管理  --   dependencyManagement   dependencies   !-- spring boot 2.2.2 --   dependency   groupId org.springframework.boot /groupId   artifactId spring-boot /artifactId   version 2.2.2.RELEASE /version   type pom /type   scope import /scope   /dependency   !-- spring cloud Hoxton.SR1 --   dependency   groupId org.springframework.cloud /groupId   artifactId spring-cloud-dependencies /artifactId   version Hoxton.SR1 /version   type pom /type   scope import /scope   /dependency   !-- spring cloud alibaba 2.1.0.RELEASE --   dependency   groupId com.alibaba.cloud /groupId   artifactId spring-cloud-alibaba-dependencies /artifactId   version 2.1.0.RELEASE /version   type pom /type   scope import /scope   /dependency   !-- mysql 連接器  --   dependency   groupId mysql /groupId   artifactId mysql-connector-java /artifactId   version ${mysql.version} /version   /dependency   !--druid  數據源 --   dependency   groupId com.alibaba /groupId   artifactId druid /artifactId   version ${druid.version} /version   /dependency   !-- mybatis  整合  spring --   dependency   groupId org.mybatis.spring.boot /groupId   artifactId mybatis-spring-boot-starter /artifactId   version ${mybatis.spring.boot.version} /version   /dependency   !-- junit --   dependency   groupId junit /groupId   artifactId junit /artifactId   version ${junit.version} /version   /dependency   !-- log4j --   dependency   groupId log4j /groupId   artifactId log4j /artifactId   version ${log4j.version} /version   /dependency   !-- lombok --   dependency   groupId org.projectlombok /groupId   artifactId lombok /artifactId   version ${lombok.version} /version   /dependency   /dependencies   /dependencyManagement   build   plugins   plugin   groupId org.springframework.boot /groupId   artifactId spring-boot-maven-plugin /artifactId   configuration   fork true /fork   addResources true /addResources   /configuration   /plugin   /plugins   /build   /project

微服務 pom 依賴

?xml version= 1.0  encoding= UTF-8 ?   project xmlns= http://maven.apache.org/POM/4.0.0  xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance  xsi:schemaLocation= http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd   parent   artifactId cloud2020 /artifactId   groupId com.atguigu.springcloud /groupId   version 1.0-SNAPSHOT /version   /parent   modelVersion 4.0.0 /modelVersion   artifactId cloud-alibaba-nacos-config-client-3377 /artifactId   dependencies   !-- nacos config --   dependency   groupId com.alibaba.cloud /groupId   artifactId spring-cloud-starter-alibaba-nacos-config /artifactId   /dependency   !-- nacos discovery --   dependency   groupId com.alibaba.cloud /groupId   artifactId spring-cloud-starter-alibaba-nacos-discovery /artifactId   /dependency   !-- web --   dependency   groupId org.springframework.boot /groupId   artifactId spring-boot-starter-web /artifactId   /dependency   !-- actuator --   dependency   groupId org.springframework.boot /groupId   artifactId spring-boot-starter-actuator /artifactId   /dependency   !-- test --   dependency   groupId org.springframework.boot /groupId   artifactId spring-boot-starter-test /artifactId   scope test /scope   /dependency   !-- devtools --   dependency   groupId org.springframework.boot /groupId   artifactId spring-boot-devtools /artifactId   scope runtime /scope   optional true /optional   /dependency   !-- lombok --   dependency   groupId org.projectlombok /groupId   artifactId lombok /artifactId   optional true /optional   /dependency   /dependencies   /project

微服務 bootstrap.yml 配置

server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: #server-addr: my.nacos.com:8848 #nacos 集群配置 (Nginx) server-addr: 192.168.15.146:80 config: #server-addr: my.nacos.com:8848 #nacos 集群配置 (Nginx) server-addr: 192.168.15.146:80 #指定 yaml 格式的配置  file-extension: yaml #指定分組  group: DEV_GROUP # 指定命名空間 ID namespace: my_nacos_namespace

微服務啟動類配置

package com.atguigu.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class NacosConfigClientMain3377 { public static void main(String[] args) { SpringApplication.run(NacosConfigClientMain3377.class, args); } }

微服務 Controller 讀取 nacos 配置

package com.atguigu.springcloud.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Slf4j @RefreshScope // 支持 Nacos 的動態刷新功能  public class ConfigClientController { @Value( ${config.info} ) private String configInfo; @GetMapping(/config/info) public String getConfigInfo() { return configInfo; } }

在 nacos 管理頁上維護一個配置

Nacos 集群如何搭建
Nacos 集群如何搭建

本地啟動微服務并訪問

Nacos 集群如何搭建

以上是“Nacos 集群如何搭建”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計8005字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 尉氏县| 昌乐县| 沙田区| 宿松县| 丘北县| 万全县| 拉萨市| 连城县| 会昌县| 汶川县| 安多县| 关岭| 聂荣县| 丰城市| 庄河市| 疏附县| 萨迦县| 靖安县| 阿拉善右旗| 丰城市| 库尔勒市| 噶尔县| 法库县| 三穗县| 温州市| 德钦县| 襄垣县| 永州市| 娄烦县| 邵阳市| 囊谦县| 大洼县| 建宁县| 蓬溪县| 夏河县| 定边县| 云林县| 玛纳斯县| 游戏| 格尔木市| 清涧县|