2、SpringcloudAlibaba Nacos的基本的介紹

Nacos可以實現分佈式服務註冊與發現/分佈式配置中心框架。

官網的介紹: https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos的環境的準備

Nacos可以在linux/windows/Mac版本上都可以安裝
具體安裝教程地址:https://nacos.io/zh-cn/docs/quick-start.html

手動實現服務註冊與發現

1.實現服務註冊
發送post請求:
‘http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080’
2.實現服務發現
http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName
詳細步驟操作:https://nacos.io/zh-cn/docs/quick-start.html

Nacos整合SpringCloud

Maven依賴信息

<?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>
    <modules>
        <module>springcloud-alibaba-api</module>
        <module>springcloud-alibaba-impl</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
    </parent>

    <groupId>SpringCloudAlibaba</groupId>
    <artifactId>SpringCloudAlibaba</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--  springboot 整合web組件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

    </dependencies>

</project>

本地負載均衡器與Nginx 的區別

Nginx是客戶端所有的請求統一都交給我們的Nginx處理,讓後在由Nginx實現負載均衡轉發,屬於服務器端負載均衡器。
本地負載均衡器是從註冊中心獲取到集羣地址列表,本地實現負載均衡算法,既本地負載均衡器。
應用場景的:
Nginx屬於服務器負載均衡,應用於Tomcat/Jetty服務器等,而我們的本地負載均衡器,應用於在微服務架構中rpc框架中,rest、openfeign、dubbo。

OpenFeign客戶端

OpenFeign是一個Web聲明式的Http客戶端調用工具,提供接口和註解形式調用。

分佈式配置中心

分佈式配置中心的作用

分佈式配置中心可以實現不需要重啓我們的服務器,動態的修改我們的配置文件內容,常見的配置中心有攜程的阿波羅、SpringCloud Config、Nacos輕量級的配置中心等。

基於Nacos實現分佈式配置中心

在這裏插入圖片描述

客戶端

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     <version>0.2.2.RELEASE</version>
</dependency>
創建一個bootstrap.yml
spring:
  application:
    ###application的名稱
    name: springcloud-alibaba-impl-member
  cloud:
    nacos:
      discovery:
        ###註冊中心
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        ###分組
        group: DEFAULT_GROUP
        ###類型
        file-extension: yaml
  profiles:
    active: dev

可以實現動態實現@RefreshScope

注意:連接nacos分佈式配置中心一定採用bootstrap形式優先加載 否則可能會報錯。
bootstrap.yml 用於應用程序上下文的引導階段。application.yml 由父Spring ApplicationContext加載。

分佈式配置中心的多版本應用

多版本控制

在這裏插入圖片描述
在這裏插入圖片描述

數據持久化

默認的情況下,分佈式配置中心的數據存放到本地data目錄下,但是這種情況如果nacos集羣的話無法保證數據的同步性。
在0.7版本之前,在單機模式時nacos使用嵌入式數據庫實現數據的存儲,不方便觀察數據存儲的基本情況。0.7版本增加了支持mysql數據源能力,具體的操作步驟:
1.安裝數據庫,版本要求:5.6.5+
2.初始化mysql數據庫,數據庫初始化文件:nacos-mysql.sql
3.修改conf/application.properties文件,增加支持mysql數據源配置(目前只支持mysql),添加mysql數據源的url、用戶名和密碼。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
###摘自官網: https://nacos.io/zh-cn/docs/deployment.html

基於Nacos集羣部署方案

相關集羣配置

1、創建cluster文件夾
---nacos-server-8848
---nacos-server-8849
---nacos-server-8850
2、更改cluster.conf
cluster.conf
###ip和端口號
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850

注意:

1.nacos在windows版本下運行默認是單機版本 需要指定startup.cmd -m cluster

2.nacos在linux版本下運行默認是集羣版本 如果想連接單機版本 startup.sh –m standalone

在這裏插入圖片描述

注意:在nacos集羣中,配置cluster.conf裏的ip不能是127.0.0.1,而是本機的真正的ip。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章