谷粒商城实战(022 业务-订单模块-服务调用)

2024-05-10 05:44

本文主要是介绍谷粒商城实战(022 业务-订单模块-服务调用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第267p-第p270的内容


远程调用

订单服务调用客户服务的查询收货地址信息方法

1.在订单服务里添加@EnableFeignClients 来开启远程调用功能
在这里插入图片描述

2.新建一个类 来专门调用远程服务客户端(调用客户服务) 使用@FeignClient注解,这里只用了name参数,url在服务发现中心(nacos)注册了
在这里插入图片描述

3.在客户服务里写一个查询客户收货地址的方法

在这里插入图片描述
它调用的service
在这里插入图片描述

  1. 放到订单服务的远程调用service里
    在这里插入图片描述
    修改为自己定义的VO
    在这里插入图片描述

  2. 订单模块的需要查看客户收货地址的方法的类里引用远程调用service
    a

  3. 在方法中引用那个方法
    在这里插入图片描述

  4. 然后Feign将会在服务发现中心(这里用的是nacos,也可以使用Eureka)中查找名为gulimall-member的服务,并根据服务的地址进行调用。

调用其他服务

这里的流式写法 重构了map里price的数据(这里多次调用数据库 性能太低,不推荐使用,但是这个流式写法推荐学习)
在这里插入图片描述
在这里插入图片描述
这里自己写getTotal方法 这里的total也可以删除 因为有get方法了
在这里插入图片描述
在这里插入图片描述
payPrice同上
在这里插入图片描述
在这里插入图片描述

防止用户重复提交的令牌
在这里插入图片描述
在这里插入图片描述
查看和禁用断点信息
在这里插入图片描述
在这里插入图片描述

feign 远程调用

分析远程调用的源码

这里判断是不是它自带的方法,不是才去调用远程服务
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加feign远程调用的请求拦截器

在这里插入图片描述
创建Feign配置类
在这里插入图片描述
请求的上下文环境保持器
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
ps:新版本的feign好像自动会把请求头带上了 所以等出问题时再进行配置

这个远程调用接口不是面向用户的接口,不需要放网关

在这里插入图片描述

使用线程池异步调用(优化)

在这里插入图片描述
在这里插入图片描述
如果是内网服务之间调用我觉得不用登录会话,

异步丢失请求头的问题

在这里插入图片描述
在这里插入图片描述
解决方法 在每个线程里放一下request的head信息
在这里插入图片描述
这里很麻烦,不过没关系,现在很少用SpringSession了,都是存redis

在这里插入图片描述
返回的时候未写@ResponseBody导致bug

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


这篇关于谷粒商城实战(022 业务-订单模块-服务调用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975600

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统