溫馨提示×

溫馨提示×

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

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

如何使用nacos軟件

發(fā)布時間:2021-10-12 14:29:46 來源:億速云 閱讀:180 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“如何使用nacos軟件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用nacos軟件”吧!

1.下載windows 版本的nacos 軟件

  下載地址:https://github.com/alibaba/nacos/releases

下載完成之后,解壓。根據(jù)不同平臺,執(zhí)行不同命令,啟動單機(jī)版Nacos服務(wù):

  • Linux/Unix/Mac:sh startup.sh -m standalone

  • Windows:cmd startup.cmd -m standalone / 今日bin 目錄直接運(yùn)行startup.cmd  

會報錯,然后的修改啟動命令,因為startup.cmd 默認(rèn)啟動是集群啟動模式(修改的時候大概在startup.cm 的27行

  1. rem set MODE= "cluster"

  2.  

    set MODE= "standalone"  

),

如何使用nacos軟件

如果使用Nacos 0.8.0以上版本,會出現(xiàn)登錄頁面,默認(rèn)用戶名密碼為:nacos

服務(wù)提供者

第一步:創(chuàng)建一個Spring Boot應(yīng)用,可以命名為:alibaba-nacos-discovery-server。如果您還不會或者不了解Spring Boot應(yīng)用,建議先學(xué)習(xí)《Spring Boot基礎(chǔ)教程》。

第二步:編輯pom.xml,加入必要的依賴配置,比如:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <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>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.2</version>
            <optional>true</optional>
        </dependency>
    </dependencies>

上述內(nèi)容主要三部分:

  • parent:定義spring boot的版本

  • dependencyManagement:spring cloud的版本以及spring cloud alibaba的版本,由于spring cloud alibaba還未納入spring cloud的主版本管理中,所以需要自己加入

  • dependencies:當(dāng)前應(yīng)用要使用的依賴內(nèi)容。這里主要新加入了Nacos的服務(wù)注冊與發(fā)現(xiàn)模塊:spring-cloud-starter-alibaba-nacos-discovery。由于在dependencyManagement中已經(jīng)引入了版本,所以這里就不用指定具體版本了。

第三步:創(chuàng)建應(yīng)用主類,并實現(xiàn)一個HTTP接口:

@EnableDiscoveryClient
@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {
        @GetMapping("/hello")
        public String hello(@RequestParam String name) {
            log.info("invoked name = " + name);
            return "hello " + name;
        }
    }
}

內(nèi)容非常簡單,@SpringBootApplication定義是個Spring Boot應(yīng)用;@EnableDiscoveryClient開啟Spring Cloud的服務(wù)注冊與發(fā)現(xiàn),由于這里引入了spring-cloud-starter-alibaba-nacos-discovery模塊,所以Spring Cloud Common中定義的那些與服務(wù)治理相關(guān)的接口將使用Nacos的實現(xiàn)。

第四步:配置服務(wù)名稱和Nacos地址

 在resources 下面創(chuàng)建bootstrap.yml

spring:
  application:
    name: alibaba-nacos-discovery-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 8001

第五步:啟動上面創(chuàng)建的應(yīng)用 ,啟動應(yīng)用看到下面的日志,說明已經(jīng)注冊的nacos 上面

 如何使用nacos軟件

在啟動都o(jì)k之后,我們可以訪問Nacos的管理頁面http://127.0.0.1:8848/nacos/來查看服務(wù)列表,此時可以看到如下內(nèi)容:

如何使用nacos軟件

這里會顯示當(dāng)前注冊的所有服務(wù),以及每個服務(wù)的集群數(shù)目、實例數(shù)、健康實例數(shù)。點(diǎn)擊詳情,我們還能看到每個服務(wù)具體的實例信息,如下圖所示:

如何使用nacos軟件

服務(wù)消費(fèi)者

接下來,實現(xiàn)一個應(yīng)用來消費(fèi)上面已經(jīng)注冊到Nacos的服務(wù)。

第一步:創(chuàng)建一個Spring Boot應(yīng)用,命名為:alibaba-nacos-discovery-client-common。

第二步:編輯pom.xml中的依賴內(nèi)容,與上面服務(wù)提供者的一樣即可。

第三步:創(chuàng)建應(yīng)用主類,并實現(xiàn)一個HTTP接口,在該接口中調(diào)用服務(wù)提供方的接口。

@EnableDiscoveryClient@SpringBootApplicationpublic class TestApplication {    public static void main(String[] args) {        SpringApplication.run(TestApplication.class, args);    }    @Slf4j    @RestController    static class TestController {        @Autowired        LoadBalancerClient loadBalancerClient;        @GetMapping("/test")        public String test() {            // 通過spring cloud common中的負(fù)載均衡接口選取服務(wù)提供節(jié)點(diǎn)實現(xiàn)接口調(diào)用            ServiceInstance serviceInstance = loadBalancerClient.choose("alibaba-nacos-discovery-server");            String url = serviceInstance.getUri() + "/hello?name=" + "didi";            RestTemplate restTemplate = new RestTemplate();            String result = restTemplate.getForObject(url, String.class);            return "Invoke : " + url + ", return : " + result;        }    }}

這里使用了Spring Cloud Common中的LoadBalancerClient接口來挑選服務(wù)實例信息。然后從挑選出的實例信息中獲取可訪問的URI,拼接上服務(wù)提供方的接口規(guī)則來發(fā)起調(diào)用。

第四步:配置服務(wù)名稱和Nacos地址,讓服務(wù)消費(fèi)者可以發(fā)現(xiàn)上面已經(jīng)注冊到Nacos的服務(wù)。

spring.application.name=alibaba-nacos-discovery-client-commonserver.port=9000spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

第五步:啟動服務(wù)消費(fèi)者,然后通過curl或者postman等工具發(fā)起訪問,下面以curl為例:

$ curl localhost:9000/testInvoke : http://10.123.18.216:8001/hello?name=didi, return : hello didi$ curl localhost:9000/testInvoke : http://10.123.18.216:8002/hello?name=didi, return : hello didi

可以看到,兩次不同請求的時候,真正實際調(diào)用的服務(wù)提供者實例是不同的,也就是說,通過LoadBalancerClient接口在獲取服務(wù)實例的時候,已經(jīng)實現(xiàn)了對服務(wù)提供方實例的負(fù)載均衡。但是很明顯,這樣的實現(xiàn)還是比較繁瑣,預(yù)告下后面的幾篇,關(guān)于服務(wù)消費(fèi)的幾種不同姿勢。

到此,相信大家對“如何使用nacos軟件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI