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

溫馨提示×

溫馨提示×

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

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

如何使用Nacos實現服務注冊與發現

發布時間:2021-10-20 15:40:04 來源:億速云 閱讀:246 作者:柒染 欄目:大數據

如何使用Nacos實現服務注冊與發現,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

什么是Nacos

Nacos致力于幫助您發現、配置和管理微服務。Nacos提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。Nacos幫助您更敏捷和容易地構建、交付和管理微服務平臺。Nacos是構建以“服務”為中心的現代應用架構 (例如微服務范式、云原生范式) 的服務基礎設施。

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

安裝Nacos

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

下載完成之后,解壓。根據不同平臺,執行不同命令,啟動單機版Nacos服務:

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

  • Windows:cmd startup.cmd -m standalone

啟動完成之后,訪問:http://127.0.0.1:8848/nacos/,可以進入Nacos的服務管理頁面默認賬號密碼都是nacos,具體如下:

如何使用Nacos實現服務注冊與發現

構建應用接入Nacos注冊中心

在完成了Nacos服務的安裝和啟動之后,下面我們就可以編寫兩個應用(服務提供者與服務消費者)來驗證服務的注冊與發現了。

服務提供者

第一步:創建一個Spring Boot應用,可以命名為: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>

上述內容主要三部分:

  • parent:定義spring boot的版本

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

  • dependencies:當前應用要使用的依賴內容。這里主要新加入了Nacos的服務注冊與發現模塊:spring-cloud-starter-alibaba-nacos-discovery。由于在dependencyManagement中已經引入了版本,所以這里就不用指定具體版本了。

第三步:創建應用主類,并實現一個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;
        }
    }
}

內容非常簡單,@SpringBootApplication定義是個Spring Boot應用;@EnableDiscoveryClient開啟Spring Cloud的服務注冊與發現,由于這里引入了spring-cloud-starter-alibaba-nacos-discovery模塊,所以Spring Cloud Common中定義的那些與服務治理相關的接口將使用Nacos的實現。這點不論我們使用Eureka、Consul還是其他Spring Cloud整合的注冊中心都一樣,這也是Spring Cloud做了封裝的好處所在

第四步:配置服務名稱和Nacos地址

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

第五步:啟動上面創建的應用。可以在啟動時候增加-Dserver.port=8001的形式在本機的不同端口上啟動多個實例。

在應用啟動好之后,我們可以在控制臺或日志中看到如下內容,代表已經注冊成功:

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

在啟動都ok之后,我們可以訪問Nacos的管理頁面http://127.0.0.1:8848/nacos/來查看服務列表,此時可以看到如下內容:

如何使用Nacos實現服務注冊與發現

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

如何使用Nacos實現服務注冊與發現

服務消費者

接下來,實現一個應用來消費上面已經注冊到Nacos的服務。

第一步:創建一個Spring Boot應用,命名為:alibaba-nacos-discovery-client-common

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

第三步:創建應用主類,并實現一個HTTP接口,在該接口中調用服務提供方的接口。

@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中的負載均衡接口選取服務提供節點實現接口調用
            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接口來挑選服務實例信息。然后從挑選出的實例信息中獲取可訪問的URI,拼接上服務提供方的接口規則來發起調用。

第四步:配置服務名稱和Nacos地址,讓服務消費者可以發現上面已經注冊到Nacos的服務。

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

第五步:啟動服務消費者,然后通過curl或者postman等工具發起訪問,下面以curl為例:

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

如何使用Nacos實現服務注冊與發現

看完上述內容,你們掌握如何使用Nacos實現服務注冊與發現的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

大石桥市| 嘉峪关市| 大渡口区| 南木林县| 小金县| 屏东县| 象山县| 连南| 柞水县| 长沙县| 安国市| 电白县| 汾西县| 珠海市| 米脂县| 佛教| 邵阳市| 若尔盖县| 大港区| 瑞安市| 宜春市| 唐河县| 浮梁县| 阿尔山市| 翁源县| 通榆县| 墨玉县| 达日县| 湛江市| 宜兴市| 油尖旺区| 宁陕县| 黄梅县| 玉屏| 清丰县| 辛集市| 丹巴县| 赤城县| 大竹县| 北安市| 简阳市|