springcloudalibaba 集成Nacos,OpenFeign

346 阅读1分钟

什么是Nacos?

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos--server的部署请看我的另一篇文章Ubuntu中配置Nacos,今天只聊一下如何在springcloualibaba中集成Nacos,完成服务的注册与发现.

上一篇我们已经简单的搭建了微服务的模块代码

image.png

集成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了

image.png

4.看下Nacos管理后台,服务已经注册成功了

image.png

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 注解,然后就可以通过注入的方式去调用了

image.png

image.png

image.png