11.21~11.28日学习总结

news2025/1/13 13:16:21

 首先这一周,主要进行的几个事情。

1.在星期一~星期二图书报账的相关事情处理已经完毕,记录了现在图书报账的相关流程,比以前的流程有不少改变,已经写了word记录了流程,给下一任图书管理员做参考。

2.进行了项目的中期答辩,总结了项目中的一些问题,还有对于业务逻辑的处理。

主要出现的问题:

1.购物车模块没有使用缓存机制,会让这里产生大量的数据库Io操作来拖慢项目的整体性能,也可以通过这个攻击数据库。

2.需要有订单未支付状态,这一块也是比较重要的业务逻辑,需要进行补全。

3.ES搜索引擎需要进行数据同步的的方式更改。

还没有完成的功能,评价模块,客服模块,后台管理模块。

星期五~星期六 我查找了关于redis进行缓存的一些操作方法,然后也是选择了异步回写方法。

所有写请求都先在缓存中处理。可以定时将缓存写入到内存中,

我选择了在用户进行了购物车数据改变操作后,开启一个定时线程,在两分钟后对于数据库和redis现在所存储的数据进行一个比对,然后进行同步操作。这样操作的缺点就是可能会丢失数据,如果在这个等待数据同步的数据服务器或者redis挂掉了,这个时间用户操作的数据就会丢失。优点就是可以减少大量的数据库请求,减少数据库压力。

然后对于redis缓存,还有比较常见的三个问题

1.缓存雪崩

db519ea565fb470fa1bfe841eef34989.png

 

如我刚才的操作,虽然用户在我设置的等待同步时间无法请求数据库,但是如果开始同步的时候,

数据库和redis存储的数据差异特别多,就仍然会产生大量的数据库请求,我的解决方法就是在同步操作发送请求时在每一个请求进行的时候都会进行1秒钟的阻塞来防止大量请求一下子进入数据库。

3832cc0671de4881ad60f88f4ff66926.png

 就是redis挂掉了,这个解决方法是使用Redis 的高可用集群,都是还没有学习分布式,所以暂时不知道怎么操作。

c0446b2afe5d43198704cd22770228fe.png

这个主要是我也没有设置什么热点 key,项目中使用的缓存也就只有购物车这一块。

这个问题网络上的方法是对于热点 key的持久化。

d767f45acc524aabac794b4f160a2c90.png

 

eed6128a6e994438abd91800214e8f2d.png

这个的解决办法主要是写入一个空值,或者写一个过滤器对请求进行过滤。

我使用的是写入空值。

星期天~星期一,主要是完成了评论模块的编辑功能

主要写的就是用户上传的图片问题,我是设置了一个hashmap来储存用户在编辑过程中上传的图片,这个主要是为了方便用户取消编辑后,删除那些无效图片,来回收用户编辑时产生的垃圾。

前面时间的学习主要是写项目,完成业务逻辑,主要的有一段时间是学习了ES引擎,主要是因为在学习索引的时候发现数据库对于模糊搜索是效率特别低的,无法使用索引,而且搜索出来的数据很乱。

然后对于ES我也没有深入学习,因为这个技术好像能明白基本api的使用就行了,也了解ES主要是使用了倒排索引来搜索数据,它的数据存储形式是把数据根据它的词典分割成一个个词语在进行搜索的时候与这些词语进行得分比较,然后通过得分展示出搜索结果,对于后端业务主要是要处理ES引擎和数据库的同步问题,还有就是ES和redis一样都是非sql,ES的性能也要比数据库的性能高不少。我之前使用的数据同步方法,是同步操作,这其实没有利用到ES的性能,反而降低了整体性能,我后面查了一下,主要的异步同步方法有两种形式,一是通过mq来进行请求管理,做到延时处理请求,但是这样就会有mq出现故障导致请求丢失的问题,二就是设置定时器,定时轮询处理请求,但这样也会有增大服务器压力的问题。

这个问题我现在还没有好好思考,等后面准备处理这个问题的时候再去找一下优化方案

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

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

相关文章

mysql集群的主从复制搭建

1.master上和slave分别安装好mysql(5.7) 2.按照下面的方式进行安装 3.安装完成后,进行初始化,并找到默认的密码进行登录 4.设置为开机自,并检查状态 5.进行登录,用root账户,密码为生成的那个密码…

C++:STL之Vector实现

vector各函数 #include<iostream> #include<vector> using namespace std;namespace lz {//模拟实现vectortemplate<class T>class vector{public:typedef T* iterator;typedef const T* const_iterator;//默认成员函数vector(); …

SpringBoot项目如何引入外部jar及将外部jar打包到项目发布jar包

1、创建一个SpringBoot项目 下载项目之后将项目导入IDEA 2、如何添加外部jar包 准备一个外部的jar包&#xff0c; 我这里使用的是guava-31.1-jre.jar作为演示 下载地址&#xff1a;https://repo1.maven.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar 在项…

黎曼的几何基础,维度

黎曼的几何基础&#xff0c;让数学领先物理100年&#xff0c;维度是人类最大的障碍 - 知乎 高斯很早就有了“高维几何”的想法&#xff0c;他曾经向他的同事们说起假想完全生活在二维表面上的“书虫”&#xff0c;并想要把这推广到高维空间的几何学中去。然而&#xff0c;由于害…

Java安全编码规范之Web安全漏洞

Java安全编码规范之Web安全漏洞安全现状漏洞案例事件一事件二事件三安全编码规范之常见的安全漏洞敏感数据编码概述漏洞危害常见关键字举例解决方案代码硬编码秘钥错误示例日志打印导致的敏感信息泄露漏洞概述关键字举例解决方案代码中在日志打印token 错误示例文件上传漏洞概述…

CSDN客诉周报第12期|修复10个重大bug,解决29个次要bug,采纳1个用户建议

听用户心声&#xff0c;解用户之需。hello&#xff0c;大家好&#xff0c;这里是《CSDN客诉周报》第12期&#xff0c;接下来就请大家一同回顾我们最近几周解决的bug&#xff5e; 一、重大问题 1、【博客】主页无法访问 反馈量&#xff1a;80 发生时间&#xff1a;10月30日下…

外汇天眼:Axi收回在RGT Capital的全部控制权,Eurotrader获得FCA牌照

在过去的一周里&#xff0c;国外外汇市场上有哪些值得关注的新闻&#xff0c;跟着天眼君一起了解下吧~具体新闻如下&#xff1a; 1、Axi收回在RGT Capital的全部控制权 据天眼君了解&#xff0c;总部位于澳大利亚的零售外汇和差价合约经纪商Axi在澳大利亚投资公司RGT Capital的…

AutoDL使用手册

官网&#xff1a;AutoDL-品质GPU租用平台-租GPU就上AutoDL 1.服务器购买 2.新建虚拟环境 conda create -n tf python3.8 # 构建一个虚拟环境&#xff0c;名为&#xff1a;tf conda init bash && source /root/.bashrc # 更新bashrc中的环境变量 conda acti…

【Flink】使用水位线实现热门商品排行以及Flink如何处理迟到元素

文章目录一 WaterMark1 水位线特点总结2 实时热门商品【重点】&#xff08;1&#xff09;数据集&#xff08;2&#xff09;实现思路a 分流 - 开窗 - 聚合分流&#xff1a;开窗&#xff1a;聚合&#xff1a;b 再分流 -- 统计再分流&#xff1a;统计&#xff1a;&#xff08;3&am…

【Hack The Box】Linux练习-- Seventeen

HTB 学习笔记 【Hack The Box】Linux练习-- Seventeen &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年9月7日&#x1f334; &#x1f…

SpringBoot结合Liquibase实现数据库变更管理

《从零打造项目》系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 SpringBoot集成MybatisPlus项目实操 SpringBoot集成Spring Data JPA项目实操 数据库变更管理 数据库变更管理&#xff1a;Li…

[附源码]Python计算机毕业设计Django的党务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

行为型模式-命令模式

package per.mjn.pattern.command;import java.util.HashMap; import java.util.Map;// 订单类 public class Order {// 餐桌号码private int diningTable;// 点的餐品和份数private Map<String, Integer> foodDir new HashMap<>();public int getDiningTable() {…

[附源码]计算机毕业设计springboot高校车辆管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

家居建材企业竞争白热化,如何通过供应商协同系统转型升级,提高核心竞争力

伴随房地产高景气时代逐渐退去&#xff0c;新房销售红利期或已接近尾声&#xff0c;家居建材需求正迈入平稳发展新阶段&#xff0c;企业之间竞争更加白热化。在面对数字化时代的快速发展&#xff0c;很多家居建材企业已达成这样的共识&#xff1a;数字化是企业未来发展的必由之…

人工智能岗位可以考什么证书?考试难不难?

最近几年人工智能在市场上的热度越来越大&#xff0c;很多企业都会利用这个项目来发展自己新渠道&#xff0c;那么想进入这一行的人需要怎么提升自己的技能呢&#xff1f;那就是考取人工智能相关的证书&#xff0c;目前阿里云人工智能是国内市场最热门的认证分为两个等级&#…

(2)点云库PCL学习——剔除点云值

1、主要参考 (1) 点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除 (2) open3d之点云异常值去除&#xff08;笔记5&#xff09;_Satellite_H的博客-CSDN博客 2、剔除的方法 2.1无效值剔除 详见我的上一篇blob &#xff08;1&#xff09;点云库…

C语言—指针进阶(详解篇)

目录 1.字符指针 1.1字符指针定义 1.2 字符指针用法 2.指针数组 2.1 指针数组定义及使用 3.数组指针 3.1 数组指针定义 3.2 &数组名和数组名 3.3 数组指针的基本用法 4. 数组参数、指针参数 5. 函数指针 5.1 函数指针定义既基本使用 5.2 有趣的代码 6. 函…

BMS 信息资源e分享平台

今天分享的是一款关于医学的企业内部实战系统。当时某药企内部面临现状是医学人力资源有限、信息量需求大、信息资源传递途径受限&#xff0c;覆盖范围小。为解决目前面临的问题&#xff0c;提高信息资源的统一性、准确性和安全性&#xff0c;优化资源获取流程&#xff0c;提高…

[vite.js]按需加载自动注册组件

最近(后知后觉)发现各大ui组件库的按需引入&#xff0c;在使用vite构建项目的时候&#xff0c;都推荐使用unplugin-vue-components插件自动解析ui组件来自动注册&#xff1b;就是说不需要再import { ... } from ..了&#xff0c;该插件会自动帮助解析并注册成组件。其实之前用n…