• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • nacos最簡入門環境搭建

    標簽: 分布式  java

    Nacos官網
    https://nacos.io/zh-cn/docs/what-is-nacos.html

    https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_nacos_discovery
    1是什么?
    Nacos 致力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
    Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務范式、云原生范式) 的服務基礎設施。
    服務(Service)是 Nacos 世界的一等公民。Nacos 支持幾乎所有主流類型的“服務”的發現、配置和管理:
    2哪里下載
    https://github.com/alibaba/nacos/tags
    3怎么使用nacos服務
    解壓后進入bin目錄輸入如下命令,啟動單機模式

    啟動成功后進入
    http://localhost:8848/nacos/#/login
    在這里插入圖片描述

    賬號:nacos
    密碼:nacos
    4服務端注冊到nacos
    4.1新建項目

    <?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>org.chinasoft.springcloud</groupId>
        <artifactId>nacos-client1.0</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>nacos-registerconfig</module>
            <module>nacos-consumer3388</module>
            <module>cloud-gateway</module>
        </modules>
        <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>
            <spring-cloud-alibaba-version>2.2.1</spring-cloud-alibaba-version>
        </properties>
        <!--子模塊繼承之后提供作用,鎖定版本+子模塊不用寫g+v-->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.2.4.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.2.1.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>
    
                    <configuration>
                        <fork>true</fork>
                        <addResources>true</addResources>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    4.2新建模塊
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    引入jar所需要的jar包

    <?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>nacos-client1.0</artifactId>
            <groupId>org.chinasoft.springcloud</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>nacos-registerconfig</artifactId>
        <dependencies>
    <!--        nacos配置中心中心-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    <!--        nacos服務發現與注冊中心-->
            <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-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
    
    
    
    
        </dependencies>
    
    </project>
    

    4.3創建application.yml文件與bootstrap.yaml文件
    bootstrap.yaml為nacos配置所需文件,服務啟動會從nacos配置中心獲取配置文件,nacos中配置文件的dataid名字規則
    為{spring.application.name}-{spring.profiles.active}.{spring.cloud.nacos.config.file-extension}
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    4.4在nacos配置中心配置文件
    在這里插入圖片描述
    在這里插入圖片描述
    4.5寫業務類與主類

    
    @RestController
    public class NacosProviderController {
        @Value("${config.info}")
        private  String configInfo;
        @GetMapping(value = "/nacos/config/{idx}")
        public String getValue(@PathVariable("idx") String id){
            System.out.println("配置信息:"+configInfo+";端口3377;輸入參數"+id);
            return "配置信息:"+configInfo+";端口3377;輸入參數"+id;
        }
    }
    

    configInfo從nacos中的dataid為 nacos-provider-dev.yaml里面讀取出來。
    注意注解@PathVariable(“idx”),不加注解無法傳輸參數

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

    4.6啟動主函數
    結果如下
    在這里插入圖片描述
    在這里插入圖片描述
    5消費方注冊到nacos
    5.1新建模塊
    在這里插入圖片描述
    新建的模塊pom.xml中會自動生成
    在這里插入圖片描述
    5.2修改pom.xml
    與服務提供端引入的jar包一致,去掉nacos.config依賴包就可以了

    <?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>nacos-client1.0</artifactId>
            <groupId>org.chinasoft.springcloud</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>nacos-consumer3388</artifactId>
        <dependencies>
    
        <!--        nacos服務發現與注冊中心-->
        <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-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        </dependencies>
    </project>
    

    5.3創建yml文件

    server:
      port: 3388
    spring:
      application:
        name: nacos-consumer3388   #服務名
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848  #nacos注冊中心地址
    

    5.4寫主類

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

    5.5編寫業務類

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

    必須添加負載均衡配置,否則不會去nacos獲取服務名

    RestController
    public class NacosConsumerController {
        @Autowired
        private RestTemplate restTemplate;
        //從注冊中心獲取該名字                             nacos-provider
        public static final String basePath = "http://nacos-provider";
    //    public static final String basePath = "http://127.0.0.1:3377";
        @GetMapping(value="/consumer/{id}")
        public String invokeServiceProvide(@PathVariable("id") String id){
           return restTemplate.getForObject(basePath+"/nacos/config/"+id,String.class);
        }
    
    }
    

    5.6結果
    消費方調用
    在這里插入圖片描述
    服務方自己調用
    在這里插入圖片描述
    Nacos注冊中心
    在這里插入圖片描述

    版權聲明:本文為wuxiao3816原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/wuxiao3816/article/details/108543224

    智能推薦

    Flutter入門環境搭建及hello_flutter

    0.效果 概念性的東西我不太會扯,先給一個Fullter開發調試時的效果,讓你3秒鐘愛上ta 1.系統環境搭建     所需基礎工具:git,Android Studio,  IntelliJ IDE,這些的下載安裝就不啰嗦了。     安裝Flutter ,win+R cmd 輸入     配置環境變量,如...

    VUE入門環境搭建及demo運行

    vue簡介: Vue.js 是一套構建用戶界面的漸進式框架。他自身不是一個全能框架——只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。在與相關工具和支持庫一起使用時,Vue.js 也能完美地驅動復雜的單頁應用。 第一步:安裝node.js 下載鏈接https://nodejs.org/en/ node簡介 Node.js是一個Javascript運行環境...

    第一章:tornado入門環境搭建

    一、準備及安裝工具 1、pycharm 2017以下簡稱pycharm 2、虛擬機或者自己有服務器 3、安裝ubuntu 16.04系統以下簡稱ubuntu 4、Xshell 5遠程連接工具以下簡稱Xshell 二、ubuntu中環境的基本配置 1、創建一個虛擬環境用來跑我們開發的tornado項目 2、查看自己服務上已經創建好的虛擬環境的命令workon 3、進入一個虛擬環境的命令workon ...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡