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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Scala---04】函数式编程 『 函数 vs 方法 | 函数至简原则 | 函数式编程』

文章目录 1. 函数 vs 方法1.1 方法(1) 定义方法(2) 运算符即方法 1.2 函数(1) 定义函数(2) 匿名函数 1.3 方法转为函数1.4 可变参数&默认参数 2. 函数至简原则3. 函数式编程3.1 函数式编程思想3.3 函数柯里化&闭包3.5 递归 & 尾递归 4. 补充4.1 访问元祖元素4.2 &g…

TCP 连接,一端断电和进程崩溃有什么区别?

TCP 连接,一端断电和进程崩溃有什么区别? 前言主机崩溃进程崩溃有数据传输的场景客户端主机宕机,又迅速重启客户端主机宕机,一直没有重启 总结 前言 有的小伙伴在面试腾讯的时候,遇到了这么个问题: 这个属…

一键审计 web 日志(teler)

在 web 系统遭受攻击之后,通常要审计 web 日志来寻找蛛丝马迹,那么有没有可以满足需求的自动化工具呢?今天就来尝试一款开源工具 teler,项目地址: https://github.com/kitabisa/teler/ 先来看一张作者测试图&#xff1…

NPDP|传统行业产品经理如何跨越鸿沟,从用户角度审视产品

随着科技的飞速发展和互联网的普及,产品经理的角色已经从单纯的产品规划者逐渐转变为全方位的用户体验设计者。对于传统行业的产品经理来说,这是一个挑战与机遇并存的时代。他们不仅要面对激烈的市场竞争,还要学会如何跨越与新兴科技行业之间…

一行Python代码可以做什么,超出你想象

哈喽,大家好,我是木头左! 揭秘编程语言的灵活性 在编程的世界里,简洁就是力量。Python以其优雅和简洁而著称,让开发者能够用更少的代码做更多的事。但这并不意味着功能上的妥协——Python的强大之处在于它允许在一行代…

【基于 PyTorch 的 Python 深度学习】5 机器学习基础(3)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了单 GPU 加速和多 GPU 加速,以及…

今年做电商,视频号小店绝对是明智之举,未来风口就在这里

大家好,我是电商笨笨熊 电商一直是近几年的热门创业方向; 但是面对众多电商平台,对于普通玩家的我们来说,该怎么选择呢? 今年来说,我会更愿意选择视频号小店。 作为一个腾讯推出的电商项目,…

LeetCode例题讲解:移动044

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出…

【STM32+HAL】DS18B20读取环境温度

一、准备工作 有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32HAL】CUBEMX初始化配置 二、所用工具 1、芯片: STM32F407VET6 2、IDE: MDK-Keil软件 3、库文件:STM32F4xxHAL库 三、实现功能 串口打印当前温度值…

Day_3

1. HttpClient HttpClient是Apache的一个子项目&#xff0c;是高效的、功能丰富的支持HTTP协议的客户端编程工具包 作用&#xff1a;发送HTTP请求&#xff0c; 接受相应数据 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>…

Deep Learn Part Six Gated RNN-24.5.1

本章核心一句话&#xff1a; 卸下包袱&#xff0c;轻装上阵。--尼采 总述&#xff1a;本章所学内容 0.引子&#xff1a; 上一章介绍的 RNN 之所以不擅长学习时序数据的长期依赖关系&#xff0c;是因为 BPTT 会发生梯度消失和梯度爆炸的问题。本节我们将首先回顾一下上一章介…

21物联1班shift五次

1.选择推荐选项 2.等待 3.点击取消 4.选择查看问题详细信息 5.点击txt文件 6.找到system文件夹&#xff0c;将sethc改为qqq&#xff0c;将cmd文件改为sethc文件 7.单击完成。重新启动虚拟机。连续按五次shift出现cmd框&#xff0c;修改密码

MySql#MySql安装和配置

目录 一、卸载不需要的环境 二、安装mysql yum 源 三、开始安装 四、如果保证安装成功呢&#xff1f; 五、MySql 启动&#xff01; 六、登录mysql 七、配置文件说明 八、设置开机启动&#xff01; 本次安装是在Linux环境在centos7中完成 首先先将自己切换成root 一、…

彻底搞懂大小端存储and调试中内存窗口如何使用?

定义 首先我们有一个常识&#xff0c;Windows采用小端存储方式。 探究Windows下vs2019是什么存储&#xff1f; 在小端存储方式中&#xff0c;低字节存储在内存的低地址处&#xff0c;高字节存储在内存的高地址处。这与大端存储方式恰好相反&#xff0c;大端存储方式中高字节存…

[图解]DDD领域驱动设计浮夸,Eric Evans开了个坏头

0 00:00:00,630 --> 00:00:02,790 今天我们要讲的是 1 00:00:03,930 --> 00:00:07,420 DDD领域驱动设计浮夸 2 00:00:07,700 --> 00:00:10,590 Eric Evans开了个坏头 3 00:00:14,790 --> 00:00:17,380 在《领域驱动设计》的 4 00:00:18,650 --> 00:00:22,59…

QT:小项目:登录界面 (下一章连接数据库)

一、效果图 登录后&#xff1a; 二、项目工程结构 三、登录界面UI设计 四主界面 四、源码设计 login.h #ifndef LOGIN_H #define LOGIN_H#include <QDialog>namespace Ui { class login; }class login : public QDialog {Q_OBJECTpublic:explicit login(QWidge…

暴露自己IP地址有什么危险

暴露自己的IP地址确实存在一定的危险性&#xff0c;以下是关于这一问题的详细探讨&#xff1a; 一、IP地址的重要性 IP地址是互联网通信中的关键标识&#xff0c;它使得网络中的设备能够相互识别并进行数据传输。在网络世界中&#xff0c;每台设备都需要一个独特的IP地址来确…

2024蓝桥杯CTF writeUP--packet

根据流量分析&#xff0c;我们可以知道129是攻击机&#xff0c;128被留了php后门&#xff0c;129通过get请求来获得数据 129请求ls Respons在这 里面有flag文件 这里请求打开flag文件&#xff0c;并以base64编码流传输回来 获得flag的base64的数据 然后解码 到手

C语言 举例说明循环嵌套

今天 我们来说循环的嵌套 如果一个循环体内 又包含了另一个循环结构 我们称之为循环的嵌套 我们之前学的 While do-while for 都可以进行相互的嵌套 如下图 在 While 循环语句中再嵌套一个 While 循环语句 do-while 中嵌套 do-while for中嵌套 for 例如 我们做一个九九乘法…

mysql中varchar与bigint直接比较会导致精度丢失以至于匹配到多行数据

在mysql中&#xff0c;我们都知道如果一个索引字段使用了函数或者计算那么查询的时候索引会失效&#xff0c;可是我相信在联表的时候我们只会关注两个表关联字段是否都创建了索引&#xff0c;却没有关注过这两个字段的类型是否一致&#xff0c;如果不一致的话索引是会失效的&am…