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

news2025/8/2 6:51:20

一.知识回顾

【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的案例】就结束了,更多内容持续更新创作中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试题】圣杯布局和双飞翼布局

圣杯布局和双飞翼布局的特点&#xff1a; 三栏布局&#xff0c;中间一栏最先加载和渲染&#xff08;内容最重要&#xff09;两侧内容固定&#xff0c;中间内容随着宽度自适应一般用于PC页面 圣杯布局和双飞翼布局的实现方式&#xff1a; 使用float布局两侧使用margin负值&am…

git 、gitLub 提交后查看显示全部删除又全部新增

问题&#xff1a; git提交后删除的行数与增加的行数一样&#xff0c;没有修改git也会去全部删除又全部新增 大概是下面你这个样子&#xff1a; 原因&#xff1a; 换行符的原因&#xff0c;win、mac、linux/Unix 换行符是不一样的&#xff0c;提交的文件换行符和git服务器的不…

【Unity300个技巧】牛顿的学问!如何优雅地使用力?

Unity 提供了一个完备且强大物理引擎。但在刚接触的时候&#xff0c;你可能会对它与现实物理规律对应有一些疑惑。 比如&#xff1a; 现实中 1N 的力在 Unity 中怎么表现&#xff1f;Unity 中物体的质量是计算的&#xff1f;Unity 中给物体添加力的方法是 rb.AddForce()&#x…

ICME 论文Latex模版要求

2023年模版获取链接&#xff1a; 链接: https://pan.baidu.com/s/1Hjk4nnybQN6LE23SGfbxKQ 提取码: 27dj --来自百度网盘超级会员v4的分享 论文写作要求&#xff1a; 所有手稿必须是英文的&#xff1b; 论文长度不应超过6页&#xff0c;包括所有文本、图形和参考文献&#…

Qt 设置CPU亲缘性,把进程和线程绑定到CPU核心上(Linux)

Qt 设置CPU亲缘性&#xff0c;把进程和线程绑定到CPU核心上(Linux) 文章目录Qt 设置CPU亲缘性&#xff0c;把进程和线程绑定到CPU核心上(Linux)摘要1 什么是CPU亲缘性2 目的3 API 介绍3.1 进程绑定到CPU3.2 线程绑定到CPU4 实际操作4.1 实操代码主进程串口线程USB线程程序运行资…

iOS开发M1芯片遇到的问题

pod失败执行&#xff1a; sudo arch -x86_64 gem install ffi Then arch -x86_64 pod install M1芯片的Mac无法在模拟器上运行项目building for iOS Simulator或could not find module for target.. 真机上可运行&#xff0c;模拟器上不行&#xff0c;并出现以下错误&#xf…

高级UI之贝塞尔曲线

前言 相信很多同学都知道“贝塞尔曲线”这个词&#xff0c;我们在很多地方都能经常看到。但是&#xff0c;可能并不是每位同学都清楚地知道&#xff0c;到底什么是“贝塞尔曲线”&#xff0c;又是什么特点让它有这么高的知名度。 贝塞尔曲线的数学基础是早在 1912 年就广为人…

八款流行无线黑客工具,非常实用

1、Aircrack Aircrack是最受欢迎的无线密码破解工具之一&#xff0c;可用于802.11a / b / g WEP和WPA破解。Aircrack使用的算法是通过捕获数据包来恢复无线密码。收集到足够的数据包后&#xff0c;它会尝试恢复密码。为了使攻击更快&#xff0c;它通过一些优化实现标准的FMS攻…

腾格尔和黑鸭子,演唱《遥远的地方》不同版本,哪首歌更值得期待

说起中国华语乐坛的音乐人&#xff0c;腾格尔老师算比较出名的一位&#xff0c;听说最近他又推出了一首新歌。《遥远的地方》这首歌曲&#xff0c;就是腾格尔老师的新歌&#xff0c;可能很多人会对这个歌名感到有些熟悉。 早在九十年代的时候&#xff0c;中国华语乐坛非常流行组…

【雷神笔记本快捷键】雷神笔记本FN功能快捷键大全以及电脑CPU处于低功耗但电脑风扇高速转动噪音较大解决方案

雷神笔记本FN功能快捷键大全以及电脑CPU处于低功耗但电脑风扇高速转动噪音较大解决方案。 本计算机有16个功能键盘。这些键的功能因应用程序而异。 请参阅软件文档以了解各个键的使用方法。 【FN】键提供便携式电脑的扩展功能,始终与另一按键搭配使用。‘【FNEsc】:启用或禁用…

教你如何使用 Visual Studio IDE 正确的进行 C++ 桌面开发

目录 先决条件 入门 一、演练&#xff1a;使用项目和解决方案 (C) 准备工作 创建项目 在 Visual Studio 中创建项目 组织项目和文件 向项目添加类 向主函数添加测试代码 向项目添加测试代码 生成并运行应用项目 生成并运行此项目 二、演练&#xff1a;生成项目 (C…

改良海量数据存储的若干的手段-转变数据垃圾为黄金

教材篇 直到翻看了后面章节&#xff0c;才注意到封面上面的标语&#xff0c;中文意思是“禁止倾倒数据垃圾&#xff0c;违者务必读此书&#xff01;” 大致祖师爷对杂乱无序的数据垃圾深恶痛绝&#xff0c;在这点上大凡上了点年头的数据工作者都是深有体会~ 直到翻看了后面章…

三相和单相智能微型断路器功能有区别吗?

安科瑞 华楠 ASCB1系列智能微型断路器是安科瑞电气股份有限公司全新推出的智慧用电产品&#xff0c;产品由智能微型断路器与智能网关两部分组成&#xff0c;可用于对用电线路的关键电气因素&#xff0c;如电压、电流、功率、温度、漏电、能耗等进行实时监测&#xff0c;具有远程…

渗透测试与漏洞扫描的区别

企业通常将漏洞扫描视为渗透测试的替代方法。这种认识是错误的。具有网络安全意识的组织必须在其业务流程中包括这两项活动&#xff0c;并确保它们协同工作。错过其中之一会大大降低 Web 应用程序安全性和网络安全性的安全状况。渗透测试和漏洞扫描也被单独视为合规性要求&…

【TFS-CLUB社区 第6期赠书活动】〖uni-app跨平台开发与应用从入门到实践〗等你来拿,参与评论,即可有机获得

文章目录❤️‍&#x1f525; 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》❤️‍&#x1f525; 编辑推荐❤️‍&#x1f525; 抽奖方式与截止时间❤️‍&#x1f525; 赠书活动 → 获奖名单❤️‍&#x1f525; 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》 内…

Redis事务操作

Redis事务操作 每个公司每个项目可能有不同的引入方式&#xff0c;但是最基本的都大差不差&#xff0c;所以这里只展示最基本的。 redis事务定义 redis事务是一个单独的隔离操作&#xff0c;事务中的所有命令都会序列化、按顺序地执行&#xff0c;事务在执行的过程中&#x…

Rancher - v2.6.5升级v2.7.0

Rancher&#x1f449;v2.6.5升级v2.7.0 时间&#xff1a;2022年11月18日16:37:50 2022-11-17凌晨&#xff0c;rancher推出了新的稳定版&#xff1a;v2.7.0。 一、为什么要升级到v2.7.0&#xff1f;v2.6.5有什么严重的问题吗&#xff1f; ● 对于私有云来说&#xff0c;一般生…

C51项目 - 可调万年历

目录一、实验目的二、实验仪器三、实验效果预览1.显示效果2.调节效果四、实验原理五、单片机代码1.头文件包含2.类型定义3.时钟模块4. 液晶显示模块5.温度传感器模块6. 红外通讯模块7.开机初始化8.特殊功能函数9.代码段常量10.完整代码一、实验目的 使用51单片机作为主控芯片&…

Hybrid app混合开发的一些经验和总结

随着5G技术的发展和移动终端普及&#xff0c;移动设备的便捷性和网络的泛在化&#xff0c;移动应用已广泛应用于电子商务、电子政务、医疗和辅助教学中。 智能手机等移动终端的存储、运算能力不断增强&#xff0c;但其显示、输入等不如PC灵活&#xff0c;对操作界面灵活性有强…

Redis 搭建高可用集群

、单个redis服务搭建请参考&#xff1a;redis服务搭建 2、在/usr/local下创建目录redis-cluster,并在redis-cluster下创建 6379、6380、6381目录以及data、temp目录 # cd /usr/local # mkdir redis-cluster --其他文件创建类似&#xff0c;此处不一一写出 3、复制安装后的re…