Springcloud-alibaba-nacos

nacos

下載地址:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

Springcloud-alibaba主要功能
**服務限流降級:**默認支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降級功能的接入,可以在運行時通過控制檯實時修改限流降級規則,還支持查看限流降級 Metrics 監控。
**服務註冊與發現:**適配 Spring Cloud 服務註冊與發現標準,默認集成了 Ribbon 的支持。
**分佈式配置管理:**支持分佈式系統中的外部化配置,配置更改時自動刷新。
**消息驅動能力:**基於 Spring Cloud Stream 爲微服務應用構建消息驅動能力。
**分佈式事務:**使用 @GlobalTransactional 註解, 高效並且對業務零侵入地解決分佈式事務問題。。
**阿里雲對象存儲:**阿里雲提供的海量、安全、低成本、高可靠的雲存儲服務。支持在任何應用、任何時間、任何地點存儲和訪問任意類型的數據。
**分佈式任務調度:**提供秒級、精準、高可靠、高可用的定時(基於 Cron 表達式)任務調度服務。同時提供分佈式的任務執行模型,如網格任務。網格任務支持海量子任務均勻分配到所有 Worker(schedulerx-client)上執行。
**阿里雲短信服務:**覆蓋全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。

nacos使用

使用1.1.4版本:
在這裏插入圖片描述
啓動nacos:
在這裏插入圖片描述
訪問localhost:8848//nacos
進入需要賬號和密碼,都是nacos
在這裏插入圖片描述
在總工程裏添加pom

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

新建一個9001工程:
在這裏插入圖片描述
添加pom:

 <dependencies>
    <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>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    </dependencies>

編寫主啓動類:
在這裏插入圖片描述
編寫controller層用於測試:
在這裏插入圖片描述
啓動9001
訪問:
在這裏插入圖片描述
打開nacos查看:已經註冊進去了
在這裏插入圖片描述
參照9001新建一個9002
啓動9002,打開nacos:
在這裏插入圖片描述
能看到實例時2了,點開查看
在這裏插入圖片描述
能看到9001和9002都註冊成功了
新建一個83服務,用於調用9001和9002在這裏插入圖片描述
添加pom:

<dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.zx.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

編寫yml:

server:
  port: 83


spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848


service-url:
  nacos-user-service: http://nacos-payment-provider

實現負載均衡:
nacos自己集成了ribbon:
在這裏插入圖片描述
新建主啓動類:
在這裏插入圖片描述
新建配置類:
在這裏插入圖片描述
新建controller類用於調用9001和9002:
在這裏插入圖片描述
啓動83並訪問:
在這裏插入圖片描述
在這裏插入圖片描述
能看到調用成功,並實現了負載均衡

nacos在cp和ap之間的切換

cp: 強調數據的一致性
ap: 高可用,數據可能會丟失
nacos默認是ap。切換成cp需要put命令:
在這裏插入圖片描述

nacos替代config作爲服務中心

新建一個服務:
在這裏插入圖片描述
添加pom:

<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 + actuator-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!--一般基礎配置-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

添加bootstrap.yml
在這裏插入圖片描述
再創建一個application.yml用於區分生產環境
在這裏插入圖片描述
新建啓動類:
在這裏插入圖片描述
新建controller層:
在這裏插入圖片描述
看一下官網的說明:
在這裏插入圖片描述
看官網可以知道我們的配置文件名字:
nacos-config-client-dev.yaml
在nacos編寫文件:
在這裏插入圖片描述
在這裏插入圖片描述
訪問:
在這裏插入圖片描述
能看到直接訪問到了

查看動態刷新:
修改配置文件版本爲2.0
在這裏插入圖片描述
再次訪問:能發現已經動態刷新了
在這裏插入圖片描述

nacos多環境多項目管理

dataId方案:
新建配置文件test:
在這裏插入圖片描述
現在有兩個文件,讀取test:
修改application.yml

DataId方案:

在這裏插入圖片描述

group方案:

在nacos上新建config文件
在這裏插入圖片描述
再寫一個test組
在這裏插入圖片描述
修改配置文件
在這裏插入圖片描述
在這裏插入圖片描述
訪問:
在這裏插入圖片描述
能看到已經配置爲DEV組了,更改爲TEST組試一試
在這裏插入圖片描述
訪問:
在這裏插入圖片描述

Namespace方案:

在nacos上新建開發和測試命名空間:
在這裏插入圖片描述
再建一個test命名空間:
在這裏插入圖片描述
修改bootstrap.yaml:

將namespace的id配置進yml
在這裏插入圖片描述 在這裏插入圖片描述
在這裏插入圖片描述
在dev的命名空間配置不通的文件:
在這裏插入圖片描述
訪問:
在這裏插入圖片描述
能看到是這個文件
在這裏插入圖片描述
在訪問test:
在這裏插入圖片描述

nacos集羣和持久化配置

由自帶的數據庫切換成我們的mysql數據庫

nacos自身帶了一個嵌入式數據庫叫derby,再nacos的config中,可以直接導入我們的數據庫:
在這裏插入圖片描述
運行完成後就是這樣的:
在這裏插入圖片描述
然後找到application.properties
在這裏插入圖片描述
然後根據官網的要求修改這個文件:
在這裏插入圖片描述
要注意修改一下連接信息,用戶名和密碼這些
在這裏插入圖片描述
因爲更改了數據庫,所以以前的配置信息會消失,重啓一下試試:
在這裏插入圖片描述
重啓後再次登錄:
在這裏插入圖片描述
然後測試一下寫一個配置文件查看數據庫有沒有
在這裏插入圖片描述
在這裏插入圖片描述
能看到我們的數據庫已經切換成功了
在這裏插入圖片描述
開始部署集羣,官網的是3個nacos加一個虛擬ip再加一個數據庫:
在這裏插入圖片描述
下載Linux版本的nacos:
https://github.com/alibaba/nacos/releases/tag/1.1.4
先下載,就是網速感人。。。
在這裏插入圖片描述

找到下載好的nacos,然後解壓

在這裏插入圖片描述
解壓後能看到nacos的文件夾:
在這裏插入圖片描述
找到bin目錄
在這裏插入圖片描述
這裏就有啓動關閉這些

配置集羣:

先進入數據庫,跟windows一樣配置數據庫到nacos
在這裏插入圖片描述
在這裏插入圖片描述
把nacos裏的nacos.mysql.sql文件創建到數據庫,因爲我的已經創建好了就不展示了,
修改application.properties,根據官網的要求把這些複製進去
在這裏插入圖片描述
複製一份集羣的文件以防萬一:
在這裏插入圖片描述
進入複製的cluster.conf
在這裏插入圖片描述
查看hostname -i。
在這裏插入圖片描述
修改cluster.conf文件:
在這裏插入圖片描述
修改startup.sh在這裏插入圖片描述
進入該文件:
在這裏插入圖片描述
mfs是指用哪一種模式,我們直接加一個p,如下:
;;兩個也要寫
在這裏插入圖片描述
修改完後:
./startup -p 3333這樣的能夠啓動
在文件最後把port傳進來:
在這裏插入圖片描述

Linux安裝Nginx

https://blog.csdn.net/weixin_44863780/article/details/105281483

修改nginx的配置文件:

進入nginx的nginx.conf文件進行修改:
在這裏插入圖片描述
修改的如下:
在這裏插入圖片描述
啓動nacos
在這裏插入圖片描述
再進入nginx,並啓動
訪問在這裏插入圖片描述
新建文件
在這裏插入圖片描述
查看數據庫:
在這裏插入圖片描述
找到9002服務,更改一下配置:
在這裏插入圖片描述
在這裏插入圖片描述
啓動9002:能看到成功註冊進去了
在這裏插入圖片描述
再看一下節點信息,都寫入了:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章