谷粒商城实战(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

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳