摘要: 事务(ACID) 原子性:事务中的所有操作要么全部成功要么全部失败回滚到最初状态。通过undolog回滚日志保证 一致性:事务操作之前和操作之后数据保持完整约束,数据库保证一致性状态,比如A有100,B有100,A给B转100块钱,最后的状态就是A为0,B账户200,他们的总金额始终是200不能改变 阅读全文
posted @ 2025-12-17 22:06 Huangyien 阅读(2) 评论(0) 推荐(0)
摘要: 三大范式 确保字段不可以再分开,比如地址按照省份,城市拆开不能混在一起,否则如果我查询在武汉的条件就不好筛选 非主键字段要依赖于主键,而不是部分依赖,比如订单信息由订单id,商品id,商品名称,然后订单id和商品id是复合主键,那么商品名称值依赖于这个商品id,正确的应该拆成两张表 非主键不能传递依 阅读全文
posted @ 2025-12-16 14:30 Huangyien 阅读(3) 评论(0) 推荐(0)
摘要: JVM内存模型(每个线程独立拥有,线程结束后销毁) 线程私有区 程序计数器:记录当前线程字节码行号指示器,用于线程切换之后恢复执行位置。唯一不会抛出OutOfMemorryError区域 虚拟机栈:每一个方法对应一个栈帧,方法执行入栈,方法结束出栈,包含局部变量表,操作数,方法出口等。递归出错会造成 阅读全文
posted @ 2025-12-14 12:34 Huangyien 阅读(4) 评论(0) 推荐(0)
摘要: 核心特性 IOC容器:控制反转;AOP面向切面编程;事务管理;MVC框架 依赖注入:把对象创建和依赖的关系交给Spring,常见的有构造方法注入,setter注入,还有字段通过这个@Autowired注入 Spring IOC 传统开发过程中,我们需要通过new关键字来创建对象。应用程序不在控制对象 阅读全文
posted @ 2025-12-11 22:33 Huangyien 阅读(5) 评论(0) 推荐(0)
摘要: 这是一种双向的。长时间保持的连接,非常适合这个实时交互的场景 调用 DeepSeek,我们调用的是流式响应的 API。这一步是实现打字机效果的关键:我们用 Spring WebFlux 的 WebClient 作为 HTTP 客户端,在请求 LLM 的时候也以流式的方式订阅返回的数据流。也就是说,L 阅读全文
posted @ 2025-12-11 14:59 Huangyien 阅读(4) 评论(0) 推荐(0)
摘要: MinIo 原生S3协议,易于扩展,适配这个分片上传/断点续传流程,高性能保证传输效率,高可用避免数据丢失 分片上传+断点续传 前端先把大文件切成小的分片,比如 5MB 一块,然后并发地上传到后端。后端每收到一个分片,就存到 MinIO 中,同时会用 Redis 的 bitmap 去记录哪些分片已经 阅读全文
posted @ 2025-12-11 12:43 Huangyien 阅读(3) 评论(0) 推荐(0)
摘要: RAG流程 RAG 系统本质上要解决一个问题:如何让 AI 能够基于企业内部的知识库来回答用户问题,设计围绕着"文件上传-文件存储-向量生成-答案生成"这条主线来展开 通过 Upload 接口来处理上传文件,并支持分片上传避免大文件传输问题,把文件处理任务丢到 Kafka 的消息队列里,这样用户上传 阅读全文
posted @ 2025-12-11 11:02 Huangyien 阅读(9) 评论(0) 推荐(0)
摘要: 1.HashMap的数据结构,在jdk8之前使用数组+链表,叫做链地址法,jdk8之后使用的是数组+链表+红黑树,数组容易查询难修改,链表慢查询容易修改,所以两者相结合 2.计算完key哈希值之后,要根据key计算出应该对应的数组下标,这个时候就需要对数组的长度进行取模运算,这里采用的是位运算按位与 阅读全文
posted @ 2025-12-10 20:09 Huangyien 阅读(7) 评论(0) 推荐(0)
摘要: 线程池使用 最常用直接通过Executors工具快速床架,不需要手动配置参数,但是不推荐,阿里巴巴开发手册规定了不能使用Executors直接创建,有可能大量创建线程导致OOM 手动创建的ThreadPoolExecutor需要指定7个核心参数 线程池参数 线程核心数(长期维持的最小线程数),最大线 阅读全文
posted @ 2025-12-10 20:00 Huangyien 阅读(3) 评论(0) 推荐(0)
摘要: volatile 一个变量修饰符,只能用来修饰变量,可以保证有序性和可见性,但是不能保证原子性,最常见的问题就是i++,他分为三个操作,在主内存中拿到原始值,进行增加,然后从工作内存写回主内存,多个线程并发执行的时候可能会有回写主内存覆盖问题。想要解决可以使用Atomic类,比如AtomicInte 阅读全文
posted @ 2025-12-10 15:35 Huangyien 阅读(3) 评论(0) 推荐(0)