Spring Cloud Alibaba入門實戰之nacos(一)


Spring Cloud Alibaba入門實戰之nacos(一)

前情介紹

​ Spring Cloud Alibaba 是阿里巴巴提供的新一代的微服務解決方案,相信會有越來越多采用微服務架構的公司會將目標投入到Spring Cloud Alibaba 中。

​ Spring Cloud Alibaba 為國人開發,為我們提供了詳盡的中文文檔,閱讀起來並不費勁。故本系列文章不會有太多的理論知識,文章的目的是記錄搭建和使用Spring Cloud Alibaba的過程。

相關文檔:

Spring Cloud Alibaba github: https://github.com/alibaba/spring-cloud-alibaba

nacos 中文文檔: https://nacos.io/zh-cn/

Nacos Discovery Example: https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

1. Nacos 作為服務注冊中心

​ 1.1 首先需要到Nacos的release notes 中下載Nacos並進行解壓啟動,推薦下載目前最新穩定版1.1.4 及Linux 壓縮包,因為Nacos是使用Java編寫的,故啟動環境需要JDK1.8 ,下載並上傳后通過tar -zxf nacosxxx 解壓后,到nacos的bin目錄下執行 sh startup.sh -m standalone 啟動單機模式(集群模式后續介紹). 默認端口為8848 (ps:珠穆朗瑪峰,Spring Cloud Alibaba nb!)

​ 1.2 接着我們需要創建一個Maven項目作為父工程並引入相關依賴:

<dependencyManagement>
        <dependencies>
            <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>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.7.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

​ 這里我們先以創建一個provider項目為例,consumer項目的創建也是同樣的道理:

​ 1.3 引入依賴:

<dependencies>
        <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>
    </dependencies>

​ 1.4 接着編寫配置文件:

spring:
  cloud:
    nacos:
      discovery:
		#注冊中心地址
        server-addr: 192.168.41.133:8848
  application:
    name: provider

​ 1.5 編寫啟動類並添加注解

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {

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

    @RestController
    class EchoController {
        @GetMapping(value = "/echo/{string}")
        public String echo(@PathVariable String string) {
            return string;
        }
    }
}

三板斧:1. 加依賴 2. 寫配置 3. 寫注解

接着我們就可以在nacos的管理界面中進行查看了,url: http://ip:8848/nacos ip地址為nacos服務的ip,賬號和密碼都是nacos

1585388705094

可以看到服務成功注冊到了nacos的服務列表中,此時nacos作為注冊中心就已經完成了,其他服務要注冊也是同樣的三板斧。

服務調用

nacos默認繼承了Ribbon,此時我們再像創建provider項目一樣創建consumer項目,同樣的三板斧。

然后再啟動類上加上如下代碼:

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

    @GetMapping("/nacos/rpc/{string}")
    public String test(@PathVariable String string) {
  		string = restTemplate().
        getForObject("http://provider:8080/echo/"+string,String.class);
        return "rpc" + string;
    }

這里配置了具有負載均衡能力的RestTemplate,通過restTempleta調用provider服務接口可以看到調用結果:

好了,這里就簡單的入門實戰了使用Spring Cloud Alibaba nacos 作為注冊中心。下一篇入門實戰nacos作為來配置中心。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM