SpringCloud学习记录|day3

news2024/10/8 10:34:44

学习材料

2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)

微服务

1.单体架构

在这里插入图片描述

2.JMeter

这其实在redis还是什么教程里面用过,不过忘记得差不多了。
复习一下。双击jmeter.bar开启。

3.微服务

在这里插入图片描述

5.服务拆分原则

在这里插入图片描述

在这里插入图片描述

拆分

在这里插入图片描述

1.商品相关拆分

数据库,然后就是各种文件拆分。

2.远程调用:RestTemplate

在这里插入图片描述

在这里插入图片描述

@RequiredArgsConstructor //必备参数构造函数
public class CartServiceImpl extends ServiceImpl<CartMapper, Cart> implements ICartService {

    private final RestTemplate restTemplate; //final必须有构造函数
private void handleCartItems(List<CartVO> vos) {
        // 1.获取商品id
        Set<Long> itemIds = vos.stream().map(CartVO::getItemId).collect(Collectors.toSet());
        // 2.查询商品
//        List<ItemDTO> items = itemService.queryItemByIds(itemIds);
        ResponseEntity<List<ItemDTO>> responce = restTemplate.exchange("http://localhost:8081/items?ids={ids}",
                HttpMethod.GET,
                null,
                new ParameterizedTypeReference<List<ItemDTO>>() {
                },
                Map.of("ids", CollUtils.join(itemIds, ","))
        );
        if(!responce.getStatusCode().is2xxSuccessful()){
            return;

        }
        List<ItemDTO> items = responce.getBody();

        if (CollUtils.isEmpty(items)) {
            return;
        }
        // 3.转为 id 到 item的map
        Map<Long, ItemDTO> itemMap = items.stream().collect(Collectors.toMap(ItemDTO::getId, Function.identity()));
        // 4.写入vo
        for (CartVO v : vos) {
            ItemDTO item = itemMap.get(v.getItemId());
            if (item == null) {
                continue;
            }
            v.setNewPrice(item.getPrice());
            v.setStatus(item.getStatus());
            v.setStock(item.getStock());
        }
    }

在这里插入图片描述

服务治理

RestTemplate不够好。
在这里插入图片描述
在这里插入图片描述

1.Nacos:部署,服务注册,服务发现

按照老师教的可能主机会访问不到,这时候需要关闭上网的一些工具。

在这里插入图片描述
配置多个实例,改端口的方法。
在这里插入图片描述

//开放对应端口
/sbin/iptables -I INPUT -p tcp --dport 9848 -j ACCEPT

服务发现
在这里插入图片描述

OpenFeign

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

1.自定义连接池

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

2.最佳实践

在这里插入图片描述
在这里插入图片描述
实例化:
在这里插入图片描述
日志
在这里插入图片描述
在这里插入图片描述

作业

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

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

相关文章

【重学 MySQL】六十、空间类型

【重学 MySQL】六十、空间类型 空间数据类型的分类空间数据类型的属性空间数据的表示方式空间数据的操作应用场景 在MySQL中&#xff0c;空间类型&#xff08;Spatial Types&#xff09;主要用于支持地理特征的生成、存储和分析。这些地理特征可以表示世界上具有位置的任何东西…

全是细节|大模型SFT的100个关键点

这篇文章介绍一下大模型的 sft 如何去做。我会默认读者们都知道 sft 是做什么的以及如何去做一些简单的 sft 微调工作&#xff0c;我主要是分享一些经验技巧和 debug 的分析思路。 背景篇 这里先普及一些 sft 涉及到的基础概念&#xff0c;方便新人同学理解后续内容&#xff0…

从0开始linux(6)——gcc

欢迎来到博主的专栏&#xff1a;从0开始linux 博主ID&#xff1a;代码小豪、 文章目录 gccgcc的文件风格预处理编译汇编链接 gcc gcc是linux系统下常用的C语言编译器&#xff0c;随着后续的扩展&#xff0c;gcc支持了c&#xff0c;并推出了g编译器&#xff0c;现在的gcc可以支…

C++(异常)

目录 C语言传统的处理错误的方式 传统的错误处理机制 C异常概念 异常的使用 异常的抛出和捕获 异常的抛出和匹配原则 在函数调用链中异常栈展开匹配原则 异常的重新抛出 异常安全 异常规范 自定义异常体系 C标准库的异常体系 异常的优缺点 C异常的优点 C异常的缺…

基于Python的美术馆预约系统【附源码】

效果如下&#xff1a; 系统首页界面 系统注册页面 美术馆详细页面 公告信息详细页面 后台登录界面 管理员主界面 美术馆管理界面 预约参观管理界面 研究背景 随着文化娱乐活动的日益丰富&#xff0c;美术馆作为展示艺术作品、传播文化的重要场所&#xff0c;其管理和服务模式…

大语言模型入门(四)——检索增强生成(RAG)

一、什么是检索增强生成 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;由Facebook AI Research&#xff08;FAIR&#xff09;团队于2020年首次提出&#xff0c;这是一种结合了信息检索技术与语言生成模型的人工智能技术。它通过从外部知…

局域网内探测在线好友是如何做到的?

一、前言 随着局域网&#xff08;LAN&#xff09;应用的广泛使用&#xff0c;网络通信已经成为软件设计中不可或缺的一部分。局域网聊天软件作为一种常见的网络应用&#xff0c;可以实现多个用户之间的实时通信&#xff0c;广泛应用于企业内部沟通和小型网络环境中。本项目设计…

‌视频尺寸修改与批量剪辑技巧

在当今这个数字化时代&#xff0c;视频内容已成为人们获取信息、娱乐和社交的重要方式。然而&#xff0c;面对海量的视频素材&#xff0c;如何高效地管理和编辑它们成为了一个挑战。 1打开视频剪辑高手软件&#xff0c;切换功能到“批量剪辑视频” 2把需要剪辑的视频导入到表格…

希尔排序和直接插入排序

因为排序这些比较复杂点我就分几期给大家来讲~~~ 直接插入排序 直接插入排序是一种简单的排序算法&#xff0c;主要用于对少量数据进行排序。其基本思想是将待排序的元素逐个插入到已经排好序的部分中&#xff0c;从而形成一个有序序列。 具体步骤如下&#xff1a; 初始化&…

基于32单片机的博物馆安全监控系统设计

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 检测 分别是温湿度 光照 PM2.5、烟雾、红外&#xff0c;然后用OLED屏幕显示&#xff0c; 红外超过阈值则蜂鸣器报警&#xff0c;这是防盗报警&#xff1b;温度或烟雾超过阈值&#xff0c;则蜂鸣器…

【目标检测】木制地板缺陷破损数据集338张6类VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3383 标注数量(xml文件个数)&#xff1a;3383 标注数量(txt文件个数)&#xff1a;3383 标注…

fiddler抓包21_(性能测试)耗时分析

课程大纲 使用场景 1. 查看请求耗时。 2. &#xff08;更多&#xff09;前端性能分析、优化。 1. 查看单个请求耗时 耗时详情&#xff1a;选择请求 - 右侧标签菜单选择Statistics“请求统计”。 传输时间线&#xff1a;选择请求 - 右侧选择“TimeLine”。 2. 前端性能分析&a…

MYSQL 常见锁机制详解,常见锁问题排查及分析

1&#xff0c;锁分类 锁冲突是影响数据库性能的重要指标&#xff0c;本章节介绍MYSQL常见锁&#xff0c;及各种说的常用示例&#xff0c;mysql锁的分类如下&#xff1a; 从操作类型分类&#xff1a;读锁、写锁&#xff1b; 从操作粒度分类&#xff1a;表锁、页锁、行锁&#x…

【文献阅读】Transfer Learning For Text Classification Via Model Risk Analysis

前言&#xff1a;本文是以文本分类的迁移学习任务为例&#xff0c;对风险分析模型的整体框架流程做梳理。 目录 1. LearnRisk1.1 motivatio1.2 overall 2. LearnRisk-TC2.1 构造风险特征2.1.1 risk metric2.1.2 risk feature 2.2 构建风险模型2.3 训练风险模型2.4 微调base mod…

线性代数入门

线性代数入门 线性代数&#xff08;Linear Algebra&#xff09;是数学的重要分支之一&#xff0c;广泛应用于工程、计算机科学、物理学、经济学等领域。它主要研究向量、矩阵及其在空间中的变换。对于程序员来说&#xff0c;掌握线性代数的基础知识能够帮助更好地理解数据处理…

边缘人工智能(Edge Intelligence)

边缘人工智能&#xff08;Edge AI&#xff09;是指在边缘设备上直接运行人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;算法的技术。机器学习是一个广泛的领域&#xff0c;近年来取得了巨大的进步。它所基于的原则是&#xff0c;计算机可以通过从数据…

Qt-QGridLayout布局类控件(43)

目录 描述 属性 使用 常规使用 垂直布局 水平布局 布局是按照相对大小进行的 拉伸系数 使用 设置水平拉伸系数 设置垂直拉伸系数 描述 Qt 中还提供了 QGridLayout ⽤来实现⽹格布局的效果.可以达到 M * N的这种⽹格的效果 属性 layoutLeftMargin左侧边距layoutRig…

Windows 安装 Maven 并配置环境变量

一、简介 Maven 是一款基于 Java 平台的项目管理和整合工具&#xff0c;用来构建项目的。也就是清理、编译、测试、运行、打包、安装整个过程都交给 Maven 管理&#xff0c;整个过程就是构建。 二、安装 Java JDK Maven 依赖 Java JDK&#xff0c;如果本机没有安装过 Java 的…

NASA:第三版大气痕量分子光谱(ATMOS)2 级产品,包含垂直高度(千米)网格上的痕量气体

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATMOS L2 Trace Gases on Altitude Grid, Fixed Field Format V3 (ATMOSL2AF) at GES DISC 简介 高度网格上的 ATMOS L2 跟踪气体&#xff0c;固定字段格式 V3 (ATMOSL2AF) 这是第三版大气痕量分子…

CMake学习笔记:项目的导出和安装-install命令

一、基本语法与概念 1.文件的安装 install(FILES) 用Poco库 usr/local/poco/CMakeLists.txt中内容 举例如下&#xff1a; 2.目标安装 install(TARGETS) 3.导出目标与导出配置文件 将目标mylib导出名为MyModules的目标。MyModules导出目标包含了关于mylib的所有信息&#xf…