远程调用过程 nacos openfeign

两个服务A,B

A调用B的方法,现在B方式写好业务,然后定义方法名,A调用方法名

 

映入product类,调用方法getCategory

        // 查询分类
        Category category = productFeignClient.getCategory(skuInfo.getCategoryId());

定义方法名(可以独立写一个模块专门定义方法,调用的地址为内部调用,所以所有的模块需要注入到nacos中)

    @GetMapping("/api/product/inner/getCategory/{categoryId}")
    public Category getCategory(@PathVariable("categoryId") Long categoryId);

通过地址调用B实现的业务逻辑,从而返回想要的数据

 

    @ApiOperation(value = "根据skuId获取sku信息")
    @GetMapping("inner/getSkuInfo/{skuId}")
    public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId) {
        return skuInfoService.getById(skuId);
    }


/**
* @Author gaosy
* @Date 2023/8/30 21:08
* @FeignClient(value = "service-product") 服务名称
*/

@FeignClient(value = "service-product")
public interface ProductFeignClient {

@GetMapping("/api/product/inner/getCategory/{categoryId}")
public Category getCategory(@PathVariable("categoryId") Long categoryId);

@GetMapping("/api/product/inner/getSkuInfo/{skuId}")
public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId);
}
 

 

 

nacos注入方法。引入nacos依赖,配置文件

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  application:
    name: orderService
  cloud:
    nacos:
      server-addr: localhost:8848  #ip地址。以及开放的端口名称
      discovery:    #集群名称
        cluster-name: HZ

 

posted @ 2023-11-12 15:42  凉忆~  阅读(49)  评论(0)    收藏  举报