成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn),相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鎮(zhèn)雄免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

什么是Nacos

Nacos致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。Nacos幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。Nacos是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。

在接下里的教程中,將使用Nacos作為微服務(wù)架構(gòu)中的注冊中心(替代:eurekba、consul等傳統(tǒng)方案)以及配置中心(spring cloud config)來使用。

安裝Nacos

下載地址:https://github.com/alibaba/nacos/releases
本文版本:1.1.3

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

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

  • Windows:cmd startup.cmd -m standalone

啟動(dòng)完成之后,訪問:http://127.0.0.1:8848/nacos/,可以進(jìn)入Nacos的服務(wù)管理頁面默認(rèn)賬號(hào)密碼都是nacos,具體如下:

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)

構(gòu)建應(yīng)用接入Nacos注冊中心

在完成了Nacos服務(wù)的安裝和啟動(dòng)之后,下面我們就可以編寫兩個(gè)應(yīng)用(服務(wù)提供者與服務(wù)消費(fèi)者)來驗(yàn)證服務(wù)的注冊與發(fā)現(xiàn)了。

服務(wù)提供者

第一步:創(chuàng)建一個(gè)Spring Boot應(yīng)用,可以命名為:alibaba-nacos-discovery-server。

第二步:編輯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)用主類,并實(shí)現(xiàn)一個(gè)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定義是個(gè)Spring Boot應(yīng)用;@EnableDiscoveryClient開啟Spring Cloud的服務(wù)注冊與發(fā)現(xiàn),由于這里引入了spring-cloud-starter-alibaba-nacos-discovery模塊,所以Spring Cloud Common中定義的那些與服務(wù)治理相關(guān)的接口將使用Nacos的實(shí)現(xiàn)。這點(diǎn)不論我們使用Eureka、Consul還是其他Spring Cloud整合的注冊中心都一樣,這也是Spring Cloud做了封裝的好處所在

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

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

第五步:啟動(dòng)上面創(chuàng)建的應(yīng)用。可以在啟動(dòng)時(shí)候增加-Dserver.port=8001的形式在本機(jī)的不同端口上啟動(dòng)多個(gè)實(shí)例。

在應(yīng)用啟動(dòng)好之后,我們可以在控制臺(tái)或日志中看到如下內(nèi)容,代表已經(jīng)注冊成功:

INFO 2998 --- [           main] o.s.c.a.n.registry.NacosServiceRegistry  : nacos registry, alibaba-nacos-discovery-server 192.168.1.139:8001 register finished

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

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)

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

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)

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

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

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

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

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

@EnableDiscoveryClient
@SpringBootApplication
public 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)實(shí)現(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ù)實(shí)例信息。然后從挑選出的實(shí)例信息中獲取可訪問的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-common
server.port=9000
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

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

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

如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)

看完上述內(nèi)容,你們掌握如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享題目:如何使用Nacos實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)
網(wǎng)頁URL:http://jinyejixie.com/article28/ggidjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)站改版、電子商務(wù)手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
青神县| 和龙市| SHOW| 赤峰市| 郁南县| 成安县| 长春市| 绍兴市| 吉安市| 毕节市| 佛山市| 南江县| 绍兴市| 酉阳| 兴仁县| 甘谷县| 泰宁县| 邢台县| 灵山县| 内丘县| 剑阁县| 莱芜市| 尼勒克县| 满城县| 铜鼓县| 理塘县| 枣阳市| 昌图县| 德保县| 独山县| 岳西县| 中方县| 思南县| 临湘市| 陆良县| 泾川县| 新闻| 饶河县| 定陶县| 沂水县| 龙井市|