自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 深入理解Seata:微服务分布式事务解决方案

本文深入探讨了微服务架构下的分布式事务问题及Seata解决方案。文章首先对比了单体架构与微服务架构下事务管理的差异,指出传统本地事务在分布式环境中的局限性。随后介绍了CAP定理和BASE理论作为分布式事务的理论基础,详细解析了Seata的三大核心角色(TC、TM、RM)和整体架构。重点剖析了Seata的四种工作模式:XA模式(强一致性)、AT模式(默认推荐)、TCC模式(高性能)和SAGA模式(长事务),分别说明其实现原理、代码示例及适用场景。最后提供了TC服务高可用部署方案和常见问题解决建议,指导开发者根

2026-06-08 11:11:48 478

原创 Lua 脚本

Lua 是一门设计优雅、功能强大的轻量级脚本语言。它的核心特性 —— table、函数、元表、协程,共同构成了一个灵活而强大的编程模型。虽然 Lua 不是一门全能的语言,但在嵌入式、高性能、轻量级的场景下,它有着不可替代的优势。

2026-06-01 15:42:43 347

原创 轻量级权限认证框架:Sa-Token

Sa-Token是一个轻量级Java权限认证框架,提供登录认证、权限控制、单点登录等安全功能。摘要介绍了其核心特性:1) 快速集成SpringBoot,支持多种Token风格;2) 提供登录状态管理、同端互斥登录、二级认证等安全机制;3) 基于RBAC模型的权限控制,支持注解鉴权;4) 会话管理支持分布式存储;5) 微服务场景下的网关鉴权方案。框架通过简洁API封装复杂安全逻辑,支持Redis持久化,适用于单体及微服务架构,帮助开发者高效构建安全系统。

2026-05-25 16:33:13 541

原创 Redis + Lua 实现高性能分布式限流

本文探讨了分布式限流系统在高并发场景下的重要性,对比分析了四种主流限流算法(固定窗口、滑动窗口、漏桶和令牌桶)的优缺点,重点介绍了基于Redis+Lua的令牌桶算法实现方案。该方案通过Spring AOP切面拦截、Redisson客户端和Lua脚本原子操作,实现了多维度组合限流、全局一致性控制和高性能处理能力。文章详细解析了生产级代码设计,包括自定义注解、两阶段提交的Lua脚本实现、Redis集群兼容性处理等关键技术点,并提供了性能优化建议和生产环境注意事项。该方案能有效解决传统单机限流的缺陷,保障系统在高

2026-05-17 23:41:37 559

原创 Elasticsearch

elasticsearch 是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。是整个 ELK 技术栈的核心,负责存储、搜索、分析数据。elasticsearch 结合 kibana、Logstash、Beats,也就是 elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等。

2026-05-10 18:55:36 586

原创 大模型开发框架 —— LangChain4j

LangChain4j是专为JVM生态设计的大模型应用开发框架,具有以下核心特点: 模块化架构:提供零框架依赖的组件化设计,支持独立使用或集成SpringBoot等主流Java框架 全链路RAG支持:覆盖文档加载、分割、向量化、存储到检索的完整流程,支持20+向量库和15+嵌入模型 强大Agent能力:支持工具调用、任务拆解和多步骤执行,可通过注解快速注册Java方法为工具 多模型兼容:支持OpenAI、Claude等国际模型及通义千问等国产模型,可无缝切换 生产级特性:内置重试、缓存、限流机制,提供Tok

2026-05-04 09:36:47 564

原创 大模型开发框架 —— SpringAI

SpringAI是Spring官方推出的Java生态AI应用框架,2025年5月发布1.0稳定版。其核心价值在于将Spring的模块化设计带入AI领域,提供统一API抽象,支持OpenAI、Anthropic等主流模型。框架包含三大核心能力:RAG(检索增强生成)技术通过先检索后生成的方式解决大模型幻觉问题;Agent智能体可自主规划任务流程;函数调用功能使AI能主动使用外部工具。SpringAI深度融合Spring生态,提供自动配置、向量存储、文档处理等企业级功能,开发者可通过POJO编程快速集成AI能力

2026-04-27 11:20:55 546

原创 Apache Kafka 开源的分布式事件流平台

Apache Kafka是一款高吞吐、低延迟的分布式事件流平台,采用发布-订阅模式,适用于大数据和实时计算场景。其核心架构包括生产者、Broker集群、消费者组和控制器,通过Topic-Partition-Replica机制实现数据分片和副本存储。Kafka具有持久化、高可用和可扩展特性,支持ZK或KRaft元数据管理。工作流程涵盖消息生产、存储和消费,应用场景包括日志聚合、事件驱动微服务、实时数据管道和用户行为分析等。作为流处理核心组件,Kafka能替代传统MQ,实现高吞吐消息处理和数据持久化。

2026-04-07 17:49:16 653

原创 RabbitMQ 核心知识点与 Java 实战笔记

RabbitMQ 是基于的开源消息中间件,用于实现系统间的,是微服务架构中最常用的消息队列之一。它作为后端开发常用的消息中间件,如何与实际项目整合并良好的运用是一个重要的关注点,下面来介绍一下它在SpringBoot项目中的嵌入。

2026-03-30 13:07:09 371

原创 阿里开源流量防护组件——Sentinel

Sentinel(哨兵)是阿里巴巴开源的轻量级分布式系统流量防护组件,,核心解决微服务架构下的流量失控、依赖故障扩散、系统过载等问题,保障服务高可用。

2026-03-23 09:06:39 685

原创 数据结构 —— 字典树

Trie 树的每个节点代表一个字符(或空),从根节点到某一叶子 / 标记节点的路径拼接起来,构成一个完整的字符串;节点额外存储 “是否为单词结尾” 的标记,用于区分 “前缀” 和 “完整单词”。

2025-12-15 10:40:19 1177

原创 数据结构 —— 并查集

并查集是一种高效处理动态连通性问题的数据结构,主要用于元素分组和连通性判断。其核心操作包括查找(Find)元素所属集合的根节点,以及合并(Union)两个集合。通过路径压缩和加权标记优化,可显著提升性能。路径压缩使查找路径上的节点直接指向根节点,加权标记则在合并时保持树结构平衡。典型应用包括判断图的连通性和Kruskal最小生成树算法。并查集通过初始化(Init)、查找(Find)和合并(Join)三个基本操作,实现了高效的动态集合管理。

2025-12-08 11:07:14 845

原创 数据结构 —— 图

本文系统介绍了图数据结构的基本概念、分类、存储方式和遍历算法。主要内容包括:1. 图的基本概念(顶点、边、度、路径等)和分类(有向/无向、加权/无权等);2. 两种主要存储方式:邻接矩阵(适合稠密图)和邻接表(适合稀疏图)的实现与特性;3. 深度优先搜索(DFS)和广度优先搜索(BFS)的算法原理、实现代码及应用场景;4. 两种遍历方式的性能分析与对比,包括时间复杂度、空间复杂度和适用场景。文章通过代码示例和比较表格,清晰展示了图这一重要数据结构及其核心算法的实现与应用。

2025-11-30 23:08:08 1157

原创 数据结构 —— 树

本文系统介绍了树结构的基本概念、存储实现及遍历方法。首先阐述了树的定义、术语(如根节点、叶子节点、度等)和基本性质。其次详细讲解了三种存储结构:双亲表示法(高效查找父节点)、孩子表示法(快速访问子节点)和孩子兄弟表示法(将多叉树转为二叉树)。重点剖析了二叉树的五种形态、四种遍历方式(先序/中序/后序/层次)的递归与非递归实现,并给出Java代码示例。最后讨论了线索二叉树的构建原理和树/森林与二叉树的转换规则。全文通过理论结合实践的方式,完整呈现了树这一重要数据结构的核心知识点与应用场景。

2025-11-24 12:07:10 1186

原创 数据结构 —— 队列

摘要:队列是遵循FIFO(先进先出)原则的线性数据结构,包含入队、出队等基本操作。主要实现方式有数组(循环队列)和链表(链式队列),各有特点。Java中提供了Queue接口及多种实现类:LinkedList支持动态扩容,ArrayDeque高效双端操作,PriorityQueue实现优先级排序,BlockingQueue支持线程阻塞。队列广泛应用于任务调度、消息队列、广度优先搜索等场景。根据单线程/多线程、优先级等不同需求,可选择合适实现类。

2025-11-16 23:03:50 979

原创 数据结构 —— 栈

本文详细讲解了栈的概念、实现及应用。栈是一种先进后出(LIFO)的线性数据结构,支持压栈、弹栈等基本操作。文章分别介绍了基于数组和链表的两种栈实现方式,对比了它们的优缺点。此外,还介绍了Java中Stack类的替代方案ArrayDeque,并探讨了栈在递归调用、括号匹配、表达式求值等场景中的实际应用。所有栈操作的时间复杂度均为O(1),具有高效的性能特性。

2025-11-04 16:36:45 896

原创 数据结构 —— 堆

堆是一种基于完全二叉树的数据结构,用于高效获取数据集中的最值。主要分为大根堆(父节点大于子节点)和小根堆(父节点小于子节点),通过数组层序存储,父子节点索引可通过公式计算。核心操作包括堆化(向上/向下调整)、构建堆(O(n))、插入(O(logn))和删除堆顶(O(logn))。典型应用包括优先队列、堆排序(O(nlogn))和Top-K问题(O(nlogk))。堆的优势在于极值操作高效,但不稳定且需注意数组扩容问题。选择大/小根堆取决于具体需求(取最大/最小值)。

2025-10-26 23:08:08 1464

原创 Java集合体系 —— Map篇

本文深入解析Java集合框架中三大Map实现类的核心特性与适用场景。HashMap基于哈希表实现,提供O(1)时间复杂度的高效查找,但不保证顺序;LinkedHashMap在HashMap基础上增加双向链表维护插入/访问顺序,适合需要保持顺序的场景;TreeMap采用红黑树结构,支持键的自然排序或定制排序,适合需要有序存储和范围查询的场景。文章详细对比了三者的底层结构、性能特点和适用场景:HashMap是默认首选,适合纯键值对查找;LinkedHashMap平衡性能与顺序需求;TreeMap则专注于有序存储

2025-10-19 21:32:13 1327

原创 Java集合体系 —— Set篇

本文深入解析Java集合框架中的Set接口及其三大实现类。Set接口作为Collection的子接口,核心特性是不重复、无索引,与List接口形成鲜明对比。HashSet作为最常用实现,基于HashMap实现高效去重(O(1)时间复杂度),适合纯去重场景;LinkedHashSet在HashSet基础上通过双向链表维护插入顺序,适合需要保留元素添加顺序的场景;TreeSet基于红黑树实现自动排序,支持自然排序或自定义比较器。文章从底层结构、源码实现到性能特点进行系统分析,为开发者选择合适Set实现提供理论依

2025-10-12 23:36:59 1080 1

原创 Java 集合体系 —— List 篇

本文深入解析Java集合框架中List接口的三种主要实现类:ArrayList、LinkedList和Vector。ArrayList基于动态数组实现,随机访问性能优异(O(1)),但插入删除需要移动元素;LinkedList采用双向链表结构,插入删除高效(O(1))而随机访问较慢(O(n));Vector是线程安全的动态数组实现,但性能较差。通过源码分析各实现类的核心操作机制,帮助开发者根据具体场景(如访问模式、线程安全需求)选择最合适的List实现。

2025-09-29 00:04:16 951

原创 第二十六周:序列化和反序列化

本文对比了Java原生序列化与Redis序列化的实现方式。Java序列化主要通过Serializable接口、ObjectOutputStream和ObjectInputStream实现对象持久化和网络传输,需注意serialVersionUID、transient字段等细节。Redis则通过RedisTemplate实现序列化,默认使用JDK序列化,但推荐使用Jackson2JsonRedisSerializer等方案以提升可读性和效率,还支持自定义序列化器实现特殊需求。两者在序列化实现机制和应用场景上存

2025-06-15 22:41:45 256

原创 第二十五周:Redis(二)

【代码】第二十周:Redis(二)

2025-06-08 11:39:40 252

原创 第二十四周:Redis(一)

Redis是一款高性能内存键值数据库,支持丰富数据结构(String、Hash、List等)和10万+级QPS。核心特性包括内存存储、持久化(RDB/AOF)、原子操作及集群高可用。典型应用场景涵盖缓存加速、分布式锁、实时统计、消息队列和排行榜。优化建议涉及内存管理(数据结构选择)、防雪崩策略(差异化过期时间)及混合持久化方案(RDB+AOF)。Redis以其高速读写和多功能性成为互联网架构的核心组件之一。

2025-06-01 11:02:07 277

原创 第十八周:Git使用和swagger文档的配置

● .apis(RequestHandlerSelectors.basePackage(“com.example.demo.controller”)):指定扫描的包路径,Swagger 只会为该包下的控制器类生成 API 文档。● .paths(PathSelectors.any()):指定要生成文档的路径规则,PathSelectors.any() 表示所有路径的 API 都会生成文档。在实际使用中,还可以根据具体情况使用更多高级命令。● .title(“示例API文档”):设置 API 文档的标题。

2025-04-21 17:14:51 959

原创 第十五周:SpringMVC学习

SpringMVC:围绕 MVC(Model-View-Controller)设计模式 构建的,旨在将应用程序的不同职责分离,从而提高代码的可维护性和可扩展性。1.DispatcherServlet:作为 SpringMVC 的前端控制器,它负责接收所有的 HTTP 请求,并将请求分发给合适的处理器进行处理。2.HandlerMapping:负责将请求映射到具体的处理器(Controller)。前端控制器,负责接收所有请求并将其分发给相应的处理器(Controller)。

2025-03-23 10:57:11 609

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除