什么是Nacos?
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos--server的部署请看我的另一篇文章Ubuntu中配置Nacos,今天只聊一下如何在springcloualibaba中集成Nacos,完成服务的注册与发现.
上一篇我们已经简单的搭建了微服务的模块代码
集成Nacos 步骤其实比较简单
1.在需要注册服务的模块POM文件中加如下面的依赖
<!--nacos服务注册与发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.在application.yml 文件中添加如下配置,命名空间之类的下次单出一章专聊Nacos的管理配置中心
server:
port: 9081
#应用名称
spring:
application:
#这个一定要指定,否则nacos是注册不了服务的
name: order-service
cloud:
nacos:
#nacos地址
server-addr: http://192.168.225.129:8848
discovery:
#命名空间
namespace: 680950f7-ea04-4b08-9d3b-1afc152d7b6c
3.配置完了,启动服务模块,看到已经注册到nacos了
4.看下Nacos管理后台,服务已经注册成功了
5.但是此时,我们还不能像单体架构那样直接一个注解就可以调用服务,微服务架构服务间的调用需要集成openFeign. 在需要的服务中加入open-feign的依赖,改造一下代码,测试用例代码请看springcloudalibaba 微服务架构一
第一步
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
第二步
调用方新建一个interface,name 是要调用的服务名称,path就是 RequestMapping的路由,在里面加上要调用的方法
@FeignClient(name = "stock-service",path = "/stock")
public interface StockFeignService {
@RequestMapping("/stock")
ApiResponse<String> stock();
}
第三步
在服务启动方法上加 @EnableFeignClients 注解,然后就可以通过注入的方式去调用了