概述
在之前的微服务项目中注册中心可能用的多的是Eureka整合SpringCloud,最近看了下阿里开源的Nacos,个人感觉蛮好用的。它自带的配置中心可以让开发者更加轻松的搭建一个微服务环境。Nacos环境搭建也非常简单,前面我已经关于Nacos环境搭建做了很详细的介绍,这里我就不在重复描述了
Nacos环境搭建
工程搭建
1.首先我们先用SpringBoot创建2个工程,我这里就叫:provider,consumer.
到这里我已经设置好一个provider服务,后我我会再搭建一个消费者服务,由于操作步骤和上面一样,我就不在重复了
到这里我已经搭建好2个服务工程,点击apply,点击ok,工程搭建完毕
服务配置
provider服务配置
1.provider代码如下和配置文件(新建的工程默认是application.properties,但是再工作中用的比较多的是yml格式,所以这里我把properties改成了yml格式)如下图
2.ProviderController代码如下:
@RestController
public class ProviderController {
@Value("${providerName}")
private String name;
@GetMapping("send")
public String send(){
return name;
}
}
3.application.yml配置如下:
server:
port: 8080
#自定义参数
providerName: provider
4.provider注册到nacos
生产者注册到nacos注册中心,步骤:
添加依赖:spring-cloud-starter-alibaba-nacos-discovery及springCloud
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--整合Nacos -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在 application.yml 中配置nacos服务地址和应用名
server:
port: 8080
spring:
application:
## 应用名
name: provider
## nacos服务地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
#自定义参数
providerName: provider
启动服务,然后登陆Nacos服务查看,结果如下
consumer服务配置
1.首先按照我上面的引入maven依赖。
2.由于配置基本和上面一样我这里就把我代码部分例举出来
代码:
@RestController
public class ConsumerController {
@GetMapping("consumer")
public String send(){
return "Consumer";
}
}
yml配置
server:
port: 8081
spring:
application:
## 应用名
name: consumer
## nacos服务地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
启动服务
整合Feign实现远程调用
1.先引入feign相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在ConsumerApplication类上添加@EnableFeignClients注解:
3.编写feignClient:
@FeignClient("provider")
public interface ProviderFeign {
@RequestMapping("send")
String send();
}
在Controller中使用feignClient:
@RestController
public class ConsumerController {
@Autowired
private ProviderFeign providerFeign;
@GetMapping("consumer")
public String send(){
String send = providerFeign.send();
return "Consumer" + send;
}
}
测试访问:
总结
至此一个简单的微服务工程已经搭建完毕。其实操作很简单,大家可以动手试试。后面我会把我这个简单的项目上传到github,大家可以参考一下