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
可以看到服務成功注冊到了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作為來配置中心。