07 2023 档案
摘要:BaseMapper、Mapper、Repository
阅读全文
摘要:package com.heima.day01; import java.util.ArrayList; public class Demo { public static void main(String[] args) { ArrayList<String> arrayList = new Ar
阅读全文
摘要:1. 看核心属性 || 2. 看核心构造方法 || 3. 看核心方法
阅读全文
摘要:1.重做日志(REDO LOG):记录所有事务,无论是否提交,用于数据恢复。 2.回滚日志(UNDO LOG):用于数据撤回操作,实现MVCC。 3.慢查询日志(slow query log):日志查询优化 4.通用查询日志(general query log):记录数据操作 5.错误日志(erro
阅读全文
摘要:entity -> EJB pojo -> MyBatis domain -> SSM biz web re
阅读全文
摘要:Spring Cloud 是基于 Spring Boot 的开发框架,提供了一系列中间件和工具,用于构建和管理分布式系统。以下是一些常用的 Spring Cloud 中间件: 1. Eureka:服务注册和发现中心,用于构建微服务架构中的服务注册中心。2. Ribbon:客户端负载均衡工具,用于在客
阅读全文
摘要:Spring Boot是一个Java框架,它提供了一系列中间件来简化应用程序的开发和集成。以下是一些常见的Spring Boot中间件: Web中间件: Servlet容器(内嵌Tomcat、Jetty或Undertow) Spring MVC(用于构建Web应用程序) WebSocket(用于实现
阅读全文
摘要:有一天,产品跑来说:“我们要做一个用户注册功能,需要在用户注册成功后给用户发一封成功邮件。” 小明(攻城狮):“好,需求很明确了。” 不就提供一个注册接口,保存用户信息,同时发起邮件调用,待邮件发送成功后,返回用户操作成功。没一会功夫,代码就写完了。验证功能没问题后,就发布上线了。 线上正常运行了一
阅读全文
摘要:线程安全: 多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 非线程安全: 在运行中不提供数据访问保护,这就可能导致多个线程先后更改数据,最后所得的数据是脏数据。 HashMap 是线程不
阅读全文
摘要:CAP定理中,P总是存在的。没有P,代表这个项目就不是一个分布式项目。
阅读全文
摘要:跨服务解决 本地事务 特点: 只能保证单个资源事务一致性 ACID:原子性、一致性、隔离性、持久性
阅读全文
摘要:redisTemplate 是通过 Spring Data Redis 提供的模板类,用于简化对 Redis 数据库的操作。在使用该类之前,需要先配好 Redis 连接 和 相关的 Bean。
阅读全文
摘要:<!-- 引入样式 --> <script src="https://unpkg.com/vue@2/dist/vue.js"></script>
阅读全文
摘要:技术方案 性能 zset + list 高 MQ的延迟队列 中等 出现消息堆积问题 定时器 + MySQL 不会选择 使用简单,当数据量巨大时,难以解决
阅读全文
摘要:1、目录和功能结构 2、数据库表结构 3、前后端交互中使用到的工具类
阅读全文
摘要:架构设计主要目的是为了解决软件系统复杂度带来的问题。 复杂度来源于高性能、高可用、低成本、安全、扩展性等方面。 基本原则:合适、简单、演化。起始时先从简单出发,后续再根据需要逐渐迭代演化,不要为难以预测的未来过度设计。 高性能方案:读写分离、分库分表、NoSQL、缓存。 高可用方案:双机架构、数据集
阅读全文
摘要:一、概念介绍 乐观锁 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。 悲观锁 每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。 二、乐观锁使用 1、给实体类变量加 @Version 注解 /*
阅读全文
摘要:MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器;LongBlob 最大存储 4G
阅读全文
摘要:前端及Web技术栈 Vue.js Node.js Lua HTML5 ElementUI Theamleaf 运维技术栈 Cannal Docker容器部署 FastDFS Eureka集群 Redis集群 Elasticsearch集群 分布式架构及权限技术栈 Spring Security CA
阅读全文
摘要:用户层 Web Android IOS H5 CDN CDN Node1 CDN 管理中心 CDN Node2 HTML CSS / JS HTML CSS / JS Json Video Json Video LB Nginx + LVS 视图层 Weex + Vue Vue + Echarts
阅读全文
摘要:Lua脚本最大的作用:能够调用 Redis 命令来保证多条命令执行的原子性。
阅读全文
摘要:第一范式:每列保持原子性,不可再分。 第二范式:满足第一范式的前提下,除了主键以外的其他列都依赖于该主键。 第三范式:满足第二范式的前提下,不依赖于除了主键以外的其他列。
阅读全文
摘要:一、角色 publisher 生产者 发消息的人 我 consumer 消费者 消费消息的人 班主任 exchange 交换机 负责消息路由 queue 队列 存储消息 班长 virtualHost 虚拟主机 隔离不同租户的exchange、queue、消息的隔离 二、结构图
阅读全文
摘要:在 Java 中,Thread 类定义了六个状态来表示线程的生命周期。这些状态通过 Thread 类中的常量来表示,分别是: 1. NEW(新建状态):当一个 Thread 对象被创建时,它处于新建状态。这时候线程还没有开始执行,直到调用了 start() 方法。 2. RUNNABLE(可运行状态
阅读全文
摘要:介绍产品时面试官会考察应聘者的沟通能力和思考能力,我们大部分情况都是做产品的一个功能或一个模块,但是即使是这样,自己有没有把整个系统架构或产品搞清楚,并能介绍清楚,为什么做这个系统?这个系统的价值是什么?这个系统有哪些功能?优缺点有哪些?如果让你重新设计这个系统你会如何设计?
阅读全文
摘要:随着工作年限的增长、对生活对生命认识的深入,应当不断思考三个问题: 1、我到底适不适合当一名程序员? 2、我到底应不应该一辈子以程序员为职业? 3、我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?最终,明确自己的职业规划,对自己的规划负责并为之努力。
阅读全文
摘要:1. 为什么学它? || 2. 怎么用它? || 3. 什么场景下适用?
阅读全文
摘要:异步、解耦、削峰 异步:可以进行异步调用,换句话说,服务在调用时可以不用等待,其他服务也可以执行。 解耦:解耦是因为两个服务间沟通不需要本身的连接,只需要由中间件来帮助传输消息。 削峰:MQ可以控制消息的消息速度,如果我处理速度比较慢,我慢慢来,你不要全给我。
阅读全文
摘要:为什么任务需要存储在数据库中、为什么使用 redis 中的两种数据类型,list 和 zset、在添加 zset 数据的时候,为什么需要预加载
阅读全文
摘要:一、相关介绍 定时任务:由固定周期的,有明确的触发时间 延迟任务:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟。 二、延迟任务的应用场景 三、技术对比 【DelayQueue】基于JVM JDK 自带 DelayQueue
阅读全文
摘要:一、OCR 介绍 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。 二、技术选型 方案 说明 百度OCR 准确率高,但收费 Tes
阅读全文
摘要:不同操作系统的文件路径拼接符号是不同的 Linux、Unix 正斜杠“ / ” Windows 反斜杠“ \ ” 正斜杠“ / ”和反斜杠“ \ ”的区别: 正斜杠“ / ”,一般在配置文件路径时,指向下一个路径只需要使用一个。 反斜杠“ \ ”,在配置文件路径时,由于其本身在Java中有特殊意义,
阅读全文
摘要:SPU = Standard Product Unit (标准产品单位) 概念:SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。 通俗点讲,属性值、特性相同的货品就可以成为一个 SPU 例如:华为P30 就是一个 SPU SKU = Stock
阅读全文
摘要:Thymeleaf SpringBoot 官方模板化技术 FreeMarker 目前较火 Velocity
阅读全文
摘要:DFA算法实现原理、如何存、如何取
阅读全文
摘要:步骤:1、在自动审核的方法上加上 @Async 注解(标明要异步调用)2、在文章发布成功后调用审核的方法3、在自媒体引导类中使用 @EnableAsync 注解开启异步调用 异步的好处:审核既使报错,也不会影响正常发布文章。
阅读全文
摘要:快捷键 含义 f 全屏 d 弹幕 m 声音
阅读全文
摘要:一、介绍 随着业务的增长,文章表可能要占用很大的物理存储空间,为了解决该问题,后期使用数据库分片技术。将一个数据库进行拆分,通过数据库中间件连接。如果数据库中该表选用 ID 自增策略,则可能产生重复的 ID,此时应该使用分布式 ID 生成策略来生成 ID。 二、技术选型 方案 优势 劣势 redis
阅读全文
摘要:代码 BeanUtils.copyProperties(拷贝对象, 目标对象); 引入包 import org.springframework.beans.BeanUtils;
阅读全文
摘要:二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。
阅读全文
摘要:原数据形式 优化后 独立代码: // 数据格式化代码 private Map<String, Set<String>> convertSpecList(List<String> specList) { Map<String, Set<String>> specMap = new HashMap<>(
阅读全文
摘要:一、使用场景 缓存 穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁 setnx、redisson 计数器 保存 token 何种数据类型 消息队列 延迟队列 二、其他面试题 集群 主从、哨兵、集群 事务 Redis为什么快
阅读全文
摘要:异步操作 绝对不可能实时同步,一定会有延迟 保证顺序性(消息队列,先进先出原则)
阅读全文
摘要:一、介绍 snowflake 是 Twitter 开源的分布式 ID 生成算法,结果是一个 long 型的 ID。其核心思想是:使用 41bit 作为毫秒数,10bit 作为机器的 ID(5 个 bit 是数据中心,5 个 bit 的机器 ID),12bit 作为毫秒内的流水号(意味着每个节点在每毫
阅读全文
摘要:参数 MultipartFile 是 SpringMVC 指定的文件接收类型
阅读全文
摘要:一、为什么 ad_update / ad_read 请求不交给后端代码? 1. tomcat 并发量不够(默认 250 / 2500) Nginx(5W) 2. lua 脚本,特点执行速度快 二、多级缓存的优点 1. 可以防止单级缓存的击穿问题。 2. 提升效率,因为本地缓存不需要网络资源传输的。
阅读全文
摘要:在 Linux 系统中 yum install -y gcc yum install libtermcap-devel ncurses-devel libevent-devel readline-devel curl -R -O http://www.lua.org/ftp/lua-5.3.
阅读全文
摘要:一、拉取镜像 docker pull minio/minio 二、创建容器 docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio1
阅读全文
摘要:一、对象存储的方式对比 存储方式 优点 缺点 服务器磁盘 开发便捷,成本低 扩展困难 分布式文件系统 容易实现扩容 复杂度高 第三方存储 开发简单,功能强大,免维护 收费 二、分布式文件系统 存储方式 优点 缺点 FastDFS 1、主备服务,高可用 2、支持主从文件,支持自定义扩展名 3、支持动态
阅读全文
摘要:基础语法种类、遍历List集合、获取Map中的数据、if指令、运算符、内建函数、静态文件生成
阅读全文
摘要:一、FreeMarker 介绍 FreeMarker 是一款 模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入他们所开发产品的组件。 二、模型图 三、技术选型对比
阅读全文
摘要:保证方法的完整性 postman 方法调用 接口调用 (测试代码覆盖率 90%以上)
阅读全文
摘要:pagehelper: reasonable: true aggregateFunctions: count,avg,max,min,sum
阅读全文
摘要:一、Filter package com.heima.app.gateway.filter; import com.heima.app.gateway.util.JwtUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Sl
阅读全文
摘要:一、导入依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <d
阅读全文
摘要:Knife4j 是为 Java MVC框架集成 Swagger 生产 Api 文档的增强解决方案。文档说明和在线调试是两大核心功能。
阅读全文
摘要:一、Postman 介绍 Postman 是一款功能强大的网页调试与发送网页HTTP请求的工具。 二、官网地址 https://www.postman.com/
阅读全文
摘要:一、Swagger 介绍 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 web 服务 二、官网地址 https://swagger.io/ 三、主要作用 1. 使得前后端分离开发更加方便,有利于团队协作 2. 接口的文档在线自动生成,降低后端开发人员编
阅读全文
摘要:依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId
阅读全文
摘要:微服务网关就是一个系统,通过暴露该微服务网关系统,方便我们进行相关的鉴权,安全控制,日志统一处理,易于监控的相关功能。
阅读全文
摘要:服务名 目录 命令 Redis 服务 Redis 目录 redis-server.exe ./redis.windows.conf Nacos 服务 bin 目录 startup.cmd -m standalone Seata 服务 bin 目录 双击 seata-server.bat
阅读全文
摘要:DevOps是一种将开发(Development)和运维(Operations)两个团队整合在一起的文化和实践方法。它旨在通过自动化和协作,加快软件开发和部署的速度,提高应用程序的质量和可靠性。 DevOps的核心理念是将开发和运维团队打破传统的独立工作模式,形成一个紧密合作的团队。开发团队负责编写
阅读全文
摘要:JSON Web Token (JWT)是一种用于在网络应用中传递声明(Claims)的开放标准。它通过对声明进行数字签名,以确保声明的完整性和可信任性,从而实现安全而可靠的身份验证和授权机制。 JWT本身不属于中间件,而是一种用于身份验证和授权的令牌机制。然而,JWT可以在中间件中使用,以实现身份
阅读全文
摘要:负载均衡(Load Balancing)是指将网络流量或工作负载分配到多个服务器或计算资源上,以提高系统的性能、可靠性和可扩展性。负载均衡的目标是使系统能够更好地处理用户的请求,并且避免某些服务器负载过高而导致性能下降或故障的情况。 负载均衡可以在不同层次进行操作,包括: 1. 硬件负载均衡:使用专
阅读全文
摘要:在软件开发中,组件(Component)是指具有独立功能和可重用性的模块化单元。它可以是一个软件系统的一部分,也可以是一个独立的软件单元。组件的设计目标是使系统更易于开发、测试、维护和扩展。 组件具有以下特点: 1. 独立性:组件是一个独立的实体,可以在不影响其他组件的情况下进行开发、部署、维护和替
阅读全文
摘要:中间件(middleware)是指在软件系统中,处于两个或多个组件之间的一个层,用于处理请求和响应。它常用于处理系统级别的功能,如请求认证、日志记录、错误处理等。中间件允许开发人员将这些功能从应用程序的核心逻辑中解耦出来,使得系统更易于维护和扩展。 在Web开发中,中间件可以被插入到请求-响应处理过
阅读全文
摘要:一、什么业务场景会出现慢查询的现象 聚合查询 多表查询 表数据量过大查询 深度分页查询 表象:页面加载过慢、接口压测响应时间过长(超过1s) 二、如何定位慢查询? 1、介绍以下当时产生问题的场景(我们当时的一个接口测试的时候非常的慢,压测的结果大概5秒钟) 2、我们系统中当时采用了运维工具(Skyw
阅读全文
摘要:1、使用实现 Runnable 接口的方式创建多线程程序,可以避免单继承的局限性 a. 类继承了 Thread类,就不能在继承其他的类了 b. 类实现了 Runnable接口,还可以继承其他的类 2、使用实现 Runnable 接口的方式创建多线程程序,可以把设置线程任务和开启线程进行解耦(解除了耦
阅读全文
摘要:一、FastDFSClient package com.changgou.file.util; import org.csource.common.NameValuePair; import org.csource.fastdfs.*; import org.slf4j.LoggerFactory;
阅读全文
摘要:一、问题现场 二、处理方案 VM options "-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon,
阅读全文
摘要:名字 字段 主键 id 标题 title 规格 spec 来源 origin
阅读全文
摘要:应用 端口号 Tomcat 8080 Nginx 80 MySQL 3306 Oracle 1521 Redis 6379 Eureka 8761 Nacos 8848 RabbitMQ 控制台端口 15672 RabbitMQ 传输端口 5672 HTTP 80 HTTPS 443 ES(HTTP
阅读全文