【15-项目中服务的远程调用之OpenFeign&订单模块与商品模块集成使用OpenFeign的案例】

一.知识回顾

【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】
【1-系统架构演进过程】
【2-微服务系统架构需求】
【3-高性能、高并发、高可用的三高商城系统项目介绍】
【4-Linux云服务器上安装Docker】
【5-Docker安装部署MySQL和Redis服务】
【6-Git安装与配置过程、Gitee码云上创建项目、IDEA关联克隆的项目】
【7-创建商城系统的子模块并将修改后的信息使用Git提交到Gitee上】
【8-数据库表结构的创建&后台管理系统的搭建】
【9-前端项目的搭建部署、Node安装、VSCode安装】
【10-Node的安装以及全局环境变量的相关配置&解决启动报错的问题(1.Error: Cannot find module ‘fs/promises)(2.npm安装node-sass报错)】
【11-导入人人generator项目并自动生成相关的文件&商品子模块的调试&公共模块common子模块的抽离与实现&Lombok插件的安装】
【12-商品子模块整合MyBatisPlus技术&其它模块通过generator的自动生成与补充完善】
【13-项目中微服务组件的学习-SpringCloudAlibaba微服务生态体系的学习&SpringCloudAlibaba的依赖管理&项目中SpringBoot和SpringCloud版本的统一】
【14-微服务的注册中心与配置中心Nacos&Windows操作系统上安装Nacos和Linux操作系统上用Docker中安装Nacos&每个子项目模块使用Nacos进行服务注册与发现】

二.RPC远程服务调用框架之OpenFegin

OpenFegin是一个声明式的服务调用组件。本质上是封装的Ribbon实现的。

在这里插入图片描述

三.基于订单模块通过OpenFeign调用商品模块的案例

3.1 商品模块的逻辑操作

先在商品服务中定义一个对外提供功能的接口

/**
     * TODO:openFeign的demo案例
     * 商品模块中为我们接下来订单模块的远程调用提供接口
     * @return
     */
    @GetMapping("/queryBrand")
    public R queryBrand(){
        BrandEntity brandEntity=new BrandEntity();
        brandEntity.setName("奔驰");
        return R.ok().put("brank",brandEntity);
    }

在这里插入图片描述

3.2 订单模块的逻辑操作

我们在订单服务中集成OpenFegin和loadbalancer依赖,完成对应的商品服务调用,如果没有引入loadbalancer会报错。

订单模块中引入相关的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

在这里插入图片描述

然后创建对应的feign包,feign包下创建ProductFeignService接口

import com.ljw.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @FeignClient TODO:指明我们要从注册中心中发现服务的名称为 mall-product
 */
@FeignClient(name = "mall-product")
public interface ProductFeignService {
    
    /**
     * 需要访问远程商品模块中对应的接口方法
     * @return
     */
    @GetMapping("/product/brand/queryBrand")
    public R queryBrand();
}

在这里插入图片描述
然后在Order的控制器中完成商品服务的调用

//TODO:注入我们远程调用的接口
    @Autowired
    ProductFeignService productFeignService;

    /**
     * TODO:订单模块的控制器中提供对应的接口方法--》OpenFegin--》远程调用服务---》也就是我们的商品模块
     * @return
     */
    @GetMapping("/products")
    public R queryProduct(){
        // OpenFegin 远程调用服务
        return R.ok().put("products",productFeignService.queryBrand());
    }

在这里插入图片描述

还商品模块的的主启动类中开启远程调用

/**
 * 
 * TODO:@EnableFeignClients 注解用来扫描我们的接口
 * TODO:注解当中的参数是扫描的路径--->(basePackages = "com.ljw.mall.order.feign")
 */
@EnableFeignClients(basePackages = "com.ljw.mall.order.feign")
@EnableDiscoveryClient
@SpringBootApplication
@MapperScan("com.ljw.mall.order.dao")
public class MallOrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(MallOrderApplication.class, args);
    }

}

在这里插入图片描述

启动服务访问订单模块下对应商品模块提供对应的接口服务
在这里插入图片描述

好了,到这里【15-项目中服务的远程调用之OpenFeign&订单模块与商品模块集成使用OpenFeign的案例】就结束了,更多内容持续更新创作中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值