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
可以看到服务成功注册到了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作为来配置中心。