亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring?Cloud?Alibaba整合Nacos使用的方法是什么

發布時間:2023-03-13 10:41:53 來源:億速云 閱讀:80 作者:iii 欄目:開發技術

今天小編給大家分享一下Spring Cloud Alibaba整合Nacos使用的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    一、前言

    近些年,隨著微服務框架在越來越多的公司產品中實踐落地,以Spring Cloud Alibaba為導向的一站式微服務解決方案也成為微服務實踐和運用的風向標,Spring Cloud Alibaba提供了越來越完善的各類微服務治理組件,比如分布式服務配置與注冊中心nacos,服務限流、熔斷組件sentinel等。

    二、常用服務注冊中心介紹

    為什么需要注冊中心呢?簡單來說,隨著微服務的個數增多,規模增大,再向以往那樣,兩個微服務之間直接通過拼接完整的請求url調用的話,微服務的維護成本將是巨大的,也不便于后續微服務的API統一治理。

    事實上,微服務化的目的就是為了減少服務間的緊密耦合,同時,一定程度上減少服務與服務之間調用時更多的信息暴露,更直接點來說,就是說服務與服務之間的調用應該是去中心化的調用,而注冊中心的好處就是為了達到此目的,注冊中心提供了一種服務與服務之間互相發現的機制,通過注冊中心,微服務提供的各類服務資源可以被統一納管,進行集中式管理,這就是注冊中心的好處。

    2.1 dubbo服務注冊示意圖

    下面是dubbo核心的經典的服務注冊與調用示意圖,其服務治理的核心就是注冊中心:Registry的存在。

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    2.2 常用注冊中心對比

    下圖列舉了常用的幾種分布式配置中心各個功能的對比,其他更多的配置中心,像eureka,zk,consul等也是可以使用的,具體可結合實際場景進行選擇;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    從上面的表的數據對比來看,springcloud alibaba為了更好的治理和打造自身的微服務生態體系,最終選擇了自研的nacos,nacos即是分布式服務注冊中心,同時也可以作為分布式配置中心使用,而且基于界面可視化操作客戶端,提供了完善的治理方案。

    三、nacos介紹

    3.1  什么是nacos

    一個更易于構建云原生應用的動態服務發現(Nacos Discovery )、服務配置(Nacos Config)和服務管理平臺。

    3.2 nacos 特點

    nacos的主要特點如下:

    • 服務發現和服務健康監測;

    • 動態配置服務;

    • 動態 DNS 服務;

    • 服務及其元數據管理;

    簡而言之

    nacos 用于管理所有微服務、解決微服務之間調用關系錯綜復雜、難以維護的問題;

    3.3 nacos生態鏈地圖

    下圖詳細介紹了nacos的生態,優勢,業務,架構等多維度的全景圖,由此可見,作為springcloud-alibaba微服務生態體系下的一款組件,其位置是非常重要的。

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    四、nacos部署

    nacos在單機環境下安裝部署非常簡單,只需要下載好安裝包之后,執行bin目錄下的啟動腳本即可快速啟動服務,下面是完整的流程。

    4.1 下載安裝包

    也可以根據自身的需要選擇合適的版本下載使用。

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

     選擇完版本后,可以選擇linux或者windows環境的安裝包下載即可;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

     這里選擇了zip壓縮包

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    4.2 修改腳本啟動模式

    nacos啟動腳本里面提供了集群模式和單機模式啟動兩種方式,由于本機搭建使用,選用單機模式即可,修改啟動腳本中如下的關鍵參數;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    4.3  啟動nacos 服務

    修改并保存腳本之后,雙擊啟動服務

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    啟動成功之后,按上圖中地址訪問nacos的客戶端控制臺,默認登錄用戶名和密碼:nacos/nacos

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

     登錄成功后,看到如下的控制臺界面;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    五、Spring Cloud Alibaba 整合Nacos

    在真正進行代碼整合之前,一定要弄清springloud alibaba版本選擇的事情,很多同學在這里由于沒弄清springloud alibaba與springboot的版本依賴,兼容性導致在整合過程中遇到較多的問題;

    5.1  Spring Cloud Alibaba版本選型

    下面摘取git中關于各個版本選型的詳細對照,git地址:各版本依賴關系地址,最重要的就是springboot的版本與Spring Cloud Alibaba 版本的依賴關系;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    5.2  實驗整合案例說明

    需求說明

    1、創建兩個微服務,order(訂單)微服務,和stock(庫存)微服務;

    2、將兩個微服務注冊到nacos,通過nacos實現order服務對stock服務的調用;

    5.3  整合完整過程

    5.3.1 創建聚合工程,包括兩個子模塊

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    5.3.2 根pom引入如下依賴

    有更多需要管理的jar,統一在dependencyManagement中加入即可;

    <!-- 統一管理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>
            <log4j.version>1.2.17</log4j.version>
        </properties>
     
        <dependencyManagement>
            <dependencies>
     
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.2.2.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
     
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Hoxton.SR1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
     
                <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>
     
            </dependencies>
        </dependencyManagement>
     
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    5.3.3 子模塊導入如下依賴

    這里暫時只需要導入springboot-web以及nacos的客戶端即可;

    <dependencies>
     
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
     
            <!--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>
     
        </dependencies>
    5.3.4 工程配置文件

    stock模塊配置文件

    server:
      port: 8085
     
    spring:
      application:
        name: stock-service
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #服務注冊中心地址
          #config:
            #server-addr: localhost:8848 #配置中心地址

    order模塊配置文件

    server:
      port: 8083
     
    spring:
      application:
        name: order-service
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #服務注冊中心地址
          #config:
            #server-addr: localhost:8848 #配置中心地址
     
    service-url:
      nacos-user-service: http://stock-service
    5.3.5 stock模塊提供一個扣減庫存接口

    在stock模塊中添加一個扣減庫存的接口,給下單接口使用

    @RestController
    @RequestMapping("/stock")
    public class StockController {
     
        @GetMapping("/reduct")
        public String reduct(){
            System.out.println("扣減庫存");
            return "扣減庫存";
        }
     
    }
    5.3.6 order模塊提供一個下單接口
    @RestController
    @RequestMapping("/order")
    public class OrderController {
     
        @Autowired
        RestTemplate restTemplate;
     
        @Value("${service-url.nacos-user-service}")
        private String serverURL;
     
        //localhost:8083/order/add
        @GetMapping("/add")
        public String add(){
            System.out.println("下單成功");
            //String forObject = restTemplate.getForObject("http://localhost:8082/stock/reduct", String.class);
            String forObject = restTemplate.getForObject(serverURL + "/stock/reduct", String.class);
            System.out.println(forObject);
            return "add order :" + forObject;
        }
     
    }
    5.3.7 工程啟動類

    兩個模塊的啟動類上面都加上@EnableDiscoveryClient 注解

    @SpringBootApplication
    @EnableDiscoveryClient
    public class OrderApp {
        public static void main(String[] args) {
            SpringApplication.run(OrderApp.class,args);
        }
     
    }
    5.3.8 order模塊添加配置類

    由于spring-cloud-starter-alibaba-nacos-discovery默認集成的是Ribbon,我們知道Ribbon是基于客戶端的負載均衡實現,所以這里的LoadBalancerClient的實現類是RibbonLoadBalancerClient,由Ribbon實現對RestTemplate的負載均衡,在當前的兩個工程模塊中,order作為客戶端,所以需要在order模塊中添加一個RestTemplate的配置類,并使用LoadBalanced注解進行修飾;

    @Configuration
    public class RestConfig {
     
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
     
    }

    5.4  模擬測試

    5.4.1 啟動服務

    啟動nacos,然后依次啟動stock服務,order服務,在工程啟動的時候,注意下面的關鍵信息,說明服務注冊到了nacos;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    啟動完成之后,再次檢查nacos的服務列表,可以發現上面正是兩個工程的服務名;

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    5.4.2 接口模擬調用

    瀏覽器調用order模塊的下單接口:localhost:8083/order/add,看到如下效果,說明通過nacos實現對微服務的調用就成功了

    Spring?Cloud?Alibaba整合Nacos使用的方法是什么

    以上就是“Spring Cloud Alibaba整合Nacos使用的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    阜新| 昌黎县| 邹城市| 日照市| 天峨县| 萨迦县| 四平市| 平罗县| 疏附县| 镇原县| 涪陵区| 海口市| 满洲里市| 锡林浩特市| 雅江县| 宁安市| 大洼县| 汽车| 六安市| 白玉县| 西乌| 新密市| 和政县| 肇庆市| 青河县| 观塘区| 乌审旗| 谢通门县| 栾川县| 湖口县| 陇川县| 德保县| 宿松县| 景宁| 衡东县| 习水县| 准格尔旗| 读书| 海林市| 惠安县| 靖远县|