- 博客(91)
- 收藏
- 关注
原创 Spring AI 全方位指南:从基础入门到高级实战
摘要 本文全面介绍了Spring AI框架及其应用开发方法。首先阐述了Spring AI的核心价值是为Java开发者提供统一接口与多种AI服务交互。然后详细解析了核心依赖配置,包括BOM管理和不同模型依赖。文章重点讲解了基础概念如ChatClient、Prompt模板和RAG技术,以及高级应用架构,特别是智能顾问、外部工具和MCP协议这三大核心组件。最后通过代码示例展示了两种工具集成方式:本地函数和客户端/服务器架构,并强调编排器在业务流程中的关键作用。
2025-12-15 11:18:06
839
原创 Spring Data JPA 完全指南:从入门到精通
摘要 Spring Data JPA 是 Spring 生态中简化数据访问层开发的框架,基于 JPA 规范提供高级抽象,减少样板代码。核心概念包括 JPA 标准、ORM 映射和 Repository 接口。使用步骤包括添加依赖、配置数据源、定义实体类及 Repository 接口,支持方法命名查询和@Query注解。与 MyBatis 相比,Spring Data JPA 更面向对象,而 MyBatis 更灵活直接操作 SQL。选型需根据项目复杂度、团队熟悉度和性能需求决定。
2025-12-15 09:33:39
601
原创 每天认识一个开源组件之Elasticsearch:全文搜索与分析引擎
Elasticsearch:数据时代的搜索与分析引擎 Elasticsearch是一个开源的分布式搜索分析引擎,基于Apache Lucene构建,专为处理海量数据而设计。它通过倒排索引和智能分词机制,实现毫秒级全文搜索、实时分析和复杂聚合查询。核心概念包括索引(类似数据库)、文档(类似数据行)、分片(支持水平扩展)和副本(保障高可用)。相比传统数据库,Elasticsearch特别擅长处理非结构化数据,提供RESTful API进行数据操作,支持地理空间搜索和多维度分析。其分布式架构可轻松扩展到数百节点,
2025-10-16 10:18:51
433
原创 每天认识一个开源组件之Seata:分布式事务的终极协调者
摘要: 微服务架构下,跨服务的数据一致性挑战突出,如电商下单场景可能因部分服务失败导致订单、库存、账户数据不一致。Seata作为分布式事务解决方案,提供AT、TCC、SAGA和XA多种模式。AT模式通过两阶段提交实现无侵入事务管理,TCC需手动编码Try-Confirm-Cancel逻辑,SAGA适合长流程事务,XA则依赖数据库强一致性但性能较差。Spring Cloud集成Seata时需配置TC服务、代理数据源,并通过@GlobalTransactional注解开启全局事务。AT模式简化开发,TCC提供更
2025-10-11 14:41:23
405
原创 K8s 从入门到生产:一份现代化的云原生应用部署终极指南
Kubernetes深度指南:从入门到实战 本文为开发者提供一份全面的Kubernetes学习指南,涵盖核心概念与实践操作。首先解析K8s作为容器编排平台的核心设计理念和架构组成,包括Master节点与Worker节点的分工协作。重点讲解Pod、Deployment、StatefulSet等核心抽象概念及其适用场景,并详细介绍服务发现、网络配置和存储管理等关键功能。实践部分提供两种集群搭建方案:Docker Desktop单节点快速部署和基于kubeadm的三节点生产级集群搭建。
2025-10-10 14:35:38
1039
原创 每天认识一个开源组件之Spring Cloud Gateway:微服务的智能“守门人”
本文介绍了Spring Cloud Gateway作为微服务架构的统一入口,解决多服务访问混乱的问题。文章分析了微服务直接暴露给客户端的弊端,阐述了API网关的必要性。详细讲解了Spring Cloud Gateway的核心概念(路由、断言、过滤器)和工作流程,并展示其丰富的路由匹配规则和强大的过滤功能。通过实战示例,演示了如何集成到Spring Cloud项目,配置动态路由,编写自定义全局过滤器。文章总结了Gateway的卓越性能、强大功能和与Spring生态的无缝集成优势,强调它是构建现代微服务系统的关
2025-10-09 17:57:08
481
原创 每天认识一个开源组件之Sentinel:高可用的流量“哨兵”
文章摘要: Sentinel是阿里巴巴开源的微服务流量控制与熔断降级组件,能有效防止雪崩效应。其核心功能包括:1)流量控制(QPS/线程数限制),支持直接拒绝、预热和匀速排队等策略;2)熔断降级(基于慢调用比例、异常比例等指标);3)系统自适应保护(全局负载/RT/QPS监控)。特别亮点是热点参数流控,可针对特定参数值限流。通过Spring Cloud Alibaba集成简单,使用@SentinelResource注解定义资源,配合可视化控制台实时调整规则,是保障微服务稳定性的利器。
2025-09-30 09:57:46
876
原创 每天认识一个开源组件之ZooKeeper:分布式系统的“动物管理员”
ZooKeeper:分布式系统的协调核心 ZooKeeper是专为解决分布式系统协调问题而设计的高性能服务,其核心是一个类似文件系统的树形数据结构和高效的监听机制。它通过ZNode(持久/临时节点)存储配置信息(如数据库地址)和系统状态,利用Watcher机制实现实时变更通知。典型应用包括:动态配置管理(所有服务实例实时同步配置变更)、服务注册发现(通过临时节点自动感知服务上下线)、分布式锁(基于顺序节点实现公平锁)和Master选举。开发中推荐使用Curator客户端简化操作,Spring Cloud也可
2025-09-29 08:49:48
1055
原创 每天认识一个开源项目之 Apache RocketMQ
在构建复杂的分布式系统时,我们经常面临三大挑战:服务间的高度耦合、同步调用导致的性能瓶颈、以及流量洪峰对系统的冲击。消息队列(Message Queue, MQ)正是为了解决这些问题而诞生的核心中间件。应用解耦:生产者和消费者无需直接交互,降低了系统模块间的耦合度。异步提速:将耗时的操作异步化,例如用户注册后的邮件发送、日志记录等,从而缩短主流程的响应时间。削峰填谷:在秒杀、大促等高并发场景下,将瞬时涌入的请求放入队列中,由消费者按照自身处理能力匀速消费,保护后端服务不被冲垮。
2025-09-26 09:11:05
924
原创 每天认识一个开源项目---XXL-JOB
XXL-JOB是一款轻量级、易扩展的国产分布式任务调度平台,由大众点评开源。它将调度行为抽象为可视化调度中心,业务系统作为执行器接入,实现调度与任务解耦。核心特性包括可视化管理、动态调度、高可用集群、丰富路由策略、故障转移告警、分片广播以及多种任务模式。系统由调度中心和执行器组成,支持Spring Boot快速集成,通过简单配置即可实现定时任务管理。相比传统方案如Quartz,XXL-JOB具有学习成本低、配置简单、分布式支持完善等优势,是Java微服务架构中任务调度的理想选择。
2025-09-22 14:58:45
889
原创 结合当下AI热潮,计算机专业学生可参考研究方向
本文系统介绍了AI领域的四个研究方向及其具体选题建议。方向一(AI应用工程)侧重实际开发,推荐基于RAG架构的领域知识问答系统设计和AIAgent研究;方向二(模型评估)聚焦算法分析,建议开展开源模型能力评测和提示工程方法研究;方向三(AI安全)关注伦理问题,推荐进行提示注入攻防研究;方向四(模型优化)专攻性能提升,建议探索模型量化和端侧部署。针对研究生还提出了更深入的四个高级研究方向,包括自适应RAG框架、多智能体系统、模型可解释性和高性能AI系统协同设计等前沿课题。这些选题兼顾实用性和创新性,覆盖了从工
2025-08-06 09:25:36
971
原创 MySQL 全方位解析:从基础到高可用架构
MySQL 是全球最流行的开源关系型数据库管理系统,采用客户端/服务器架构,支持多线程模型和可插拔存储引擎。核心特性包括关系型数据模型、ACID事务支持(InnoDB引擎)、丰富的查询语言和成熟的生态系统。其架构分为连接层、服务层和引擎层,InnoDB作为默认引擎通过缓冲池、事务日志和MVCC机制实现高性能与并发控制。MySQL提供多种锁机制(行锁、表锁、意向锁等)确保数据一致性,并支持主从复制、读写分离等高可用方案,以及分库分表等扩展方案。
2025-08-04 10:06:14
470
原创 Redis 全方位解析:从入门到实践
Redis是一个基于内存的高性能键值存储系统,支持字符串、哈希、列表等多种数据结构。其核心特性包括极快的读写速度、丰富的数据类型支持、持久化机制以及高可用性。Redis采用单线程模型和I/O多路复用技术实现高并发,并通过主从复制、哨兵模式和集群模式确保系统可靠性。在数据管理方面,Redis提供多种淘汰策略和RDB/AOF持久化选项。典型应用场景包括数据缓存、分布式会话、消息队列等。最佳实践建议包括合理配置、安全防护和性能监控。Redis凭借其出色的性能和灵活性,已成为现代分布式系统中的重要组件。
2025-07-28 10:46:38
822
原创 SaaS型小程序自动化发布解决方案
本文提出了一套SaaS平台的小程序自动化发布方案,核心通过代码模板与商户配置分离实现高效批量发布。方案采用miniprogram-ci工具,提供两种实施路径:1)基于GitLab CI的标准CI/CD流程,通过占位符替换和脚本自动化完成构建上传;2)基于SpringBoot+Shell的Java技术栈方案,通过异步服务和脚本执行实现。文章详细介绍了从代码改造、配置注入到上传审核的全流程,并建议采用"自动上传+半自动审核+手动发布"的混合模式确保安全可控。该方案能显著提升多租户小程序的发布
2025-07-25 11:35:45
1302
原创 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata框架实现原理详解 - 3-5年Java开发必备知识
Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的分布式事务解决方案,支持AT、TCC、Saga和XA模式。其核心思想是通过全局事务协调器(TC)来管理分支事务的提交和回滚。答案:分布式事务是指跨多个服务或数据库的事务操作。在微服务架构中,服务之间的调用和数据存储是分布式的,因此需要分布式事务来保证数据一致性。分布式事务是微服务架构中的关键挑战,Seata提供了一种高效且灵活的解决方案。
2025-04-17 19:00:56
897
原创 【Java面试系列】Spring Cloud微服务架构中的分布式事务处理与Seata框架实现原理 - 2025-04-16详解 - 3-5年Java开发必备知识
Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的分布式事务解决方案,支持AT、TCC、Saga和XA模式。:事务协调者,负责全局事务的提交和回滚。:事务管理器,定义全局事务的边界。:资源管理器,负责分支事务的管理。答案:分布式事务是指跨多个服务或数据库的事务操作。常见解决方案包括2PC、TCC、Saga和Seata。本文从分布式事务的基础概念出发,深入分析了Seata框架的实现原理和实际应用场景。
2025-04-16 18:39:22
956
原创 【Java面试系列】10个重要主题详解 - 3-5年Java开发必备知识
Spring Boot的自动配置通过实现,基于条件注解(如)动态加载配置。本文涵盖了Java开发的10个核心主题,建议结合源码和实践深入学习。
2025-04-15 18:28:45
569
原创 【Java面试系列】Spring Cloud微服务架构中的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识
Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的分布式事务解决方案,支持AT、TCC、Saga和XA模式。:事务协调器,负责全局事务的提交和回滚。:事务管理器,定义全局事务的边界。:资源管理器,负责分支事务的管理。分布式事务处理是微服务架构中的关键技术,Seata框架提供了强大的支持。开发者需要深入理解其实现原理,并结合实际业务场景选择合适的事务模式。学习建议阅读Seata官方文档,了解其核心设计。
2025-04-12 08:38:43
669
原创 【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化详解 - 3-5年Java开发必备知识
分布式事务处理和性能优化是微服务架构中的核心问题。开发者需要深入理解相关理论和技术,并结合实际场景选择最佳方案。建议通过开源框架(如Seata)和性能优化工具(如Redis)提升实战能力。
2025-04-09 18:29:31
970
2
原创 【Java面试系列】Spring Boot微服务架构下的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识
Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的分布式事务解决方案,支持AT、TCC、SAGA和XA模式。:事务协调器,负责全局事务的提交或回滚。:事务管理器,定义全局事务的边界。:资源管理器,负责分支事务的管理。答案:分布式事务是指跨多个服务或数据库的事务操作,常见的解决方案包括2PC、TCC、SAGA和Seata。分布式事务处理是微服务架构中的核心问题,Seata框架为Java开发者提供了高效的解决方案。
2025-04-07 18:25:12
897
原创 【Java面试系列】Spring Cloud微服务架构中的服务熔断与降级策略实现与优化详解 - 3-5年Java开发必备知识
服务熔断:当某个服务的错误率超过阈值时,系统会自动停止对该服务的调用,避免资源浪费和系统崩溃。服务降级:在系统压力过大或服务不可用时,提供一种备选方案,保证核心功能的可用性。服务熔断与降级是微服务架构中不可或缺的稳定性保障手段。开发者需要深入理解其原理,并结合实际业务场景灵活应用。建议通过阅读源码和实战项目巩固知识。
2025-04-06 18:12:21
587
原创 【Java面试系列】Spring Boot应用中的事务传播机制与分布式事务实践详解 - 3-5年Java开发必备知识
事务传播机制和分布式事务是Java开发中的高级话题,掌握这些知识不仅能提升面试表现,还能在实际项目中解决复杂问题。建议通过阅读源码和实践项目来加深理解。
2025-04-06 17:52:42
1166
原创 Arthas---线上处理工具
Arthas 是由阿里巴巴开源的一款强大的 Java 诊断工具,主要设计目的是帮助开发者在生产环境中不重启应用的情况下,快速定位和解决各种 Java 应用的问题。它支持多种功能,例如方法跟踪、内存分析、线程诊断等:可以查看 CPU、内存、GC、线程等信息。:通过trace命令可以查看方法的调用链路及其耗时。:使用sc和sm命令可以查看已加载的类和类方法信息。:通过profiler命令生成火焰图,帮助分析性能瓶颈。:可以反编译类文件、查看类加载器信息等。:通过分析方法执行的耗时,找出系统的性能瓶颈。
2025-01-09 15:32:06
1225
原创 Guava常见特性操作
Guava 是 Google 开发的一个 Java 核心库,它包含了许多 Google 工程师在 Java 编程中常用的实用工具。Guava 库旨在提供新的集合类型(如多集合和双端队列)、缓存、原生类型支持、并发库、常见注解、字符串处理等实用工具。集合框架增强不可变集合:如,创建后无法修改,提高线程安全性。Multimap:支持一个键映射多个值的结构,例如和。BiMap:双向映射,键和值都必须唯一,可以通过值反向查找键。Table:支持二维表结构的数据存储,类似于矩阵。缓存机制。
2025-01-02 17:39:58
903
原创 Disruptor 高性能环形消息框架
Disruptor是一个高性能的互进程(Inter-process)和多线程(Multi-threaded)消息处理库,由LMAX交易所开发,用于在Java虚拟机(JVM)上实现高性能的交换和处理数据。Disruptor的核心目标是提供一种低延迟、高吞吐量的解决方案。一些关键特性:Disruptor设计用来减少延迟,因为它避免了使用锁和线程间上下文切换,而是采用了一种基于缓存行(cache line)的设计理念。
2024-12-27 17:22:24
951
原创 数据结构---图(Graph)
图(Graph)是一种非常灵活且强大的数据结构,用于表示实体之间的复杂关系。在图结构中,数据由一组节点(或称为顶点)和连接这些节点的边组成。图可以用于表示社交网络、交通网络、网络路由等场景。
2024-12-16 09:09:05
1506
原创 数据结构---哈希表(Hash Table)
哈希表(Hash Table),也称为散列表,是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。它提供了快速的数据插入、删除、搜索和访问功能。哈希表的主要目的是解决直接寻址和顺序结构之间的矛盾,实现快速的数据访问。
2024-12-13 08:56:46
1636
1
原创 基于树(Tree)的部分笔试题
可以使用深度优先搜索(DFS),从根节点开始遍历树,计算路径的总和。: 使用递归来构建二叉树的中序遍历,其中每次选择数组的中间元素作为根节点,左右部分作为子树。: 使用深度优先搜索(DFS),计算每个节点的左右子树的高度,确保其高度差不超过1。:给定一个二叉搜索树(BST),找出其中的第k大的元素。,判断是否存在从根节点到叶子节点的路径,使得路径上所有节点的值之和等于目标和。(从上到下)遍历的节点值。: 可以使用递归的方式,交换每个节点的左右子节点。: 中序遍历树的节点,确保节点的值按照升序排列。
2024-12-12 09:00:31
382
原创 数据结构---树(Tree)
在数据结构中,是一种层次结构的数据结构,由节点(node)组成,其中每个节点通过边(edge)与其他节点连接。树是一种非线性的数据结构,广泛用于表示具有层级关系的数据。常见的树包括二叉树、平衡树、红黑树、B树等。:树中的基本元素,包含数据和指向子节点的指针(或引用)。:连接树中两个节点的连接线。:树的顶层节点,没有父节点。:某个节点的下级节点。:某个节点的上级节点。:没有子节点的节点。:树中某个节点到根节点的路径长度。:树中某个节点到其最深叶节点的最长路径长度。:树的某个节点及其所有后代节点构成的树。
2024-12-11 10:14:05
3382
原创 Redis客户端(Jedis、RedisTemplate、Redisson)
Redis作为一个当下很火热的非关系型数据库,Java从业人员基本都离不开对Redis的使用。在Java程序中该数据库,需要借助于市面上的开源客户端,如Jedis、Spring Data Redis、Redisson,它们可以作为操作Redis非关系型数据库的桥梁。
2024-12-10 09:05:48
5021
1
原创 JVM调优
JVM调优,即Java虚拟机(Java Virtual Machine)调优,是指对Java虚拟机的运行参数进行调整,以优化Java应用程序的性能。JVM是Java程序运行的平台,负责装载字节码文件,解释或编译字节码文件,并执行。调优的目标通常包括减少延迟、提高吞吐量、减少内存占用等。-Xms:设置JVM启动时的初始堆大小。-Xmx:设置JVM可以使用的最大堆大小。-Xms256m:设置JVM启动时的初始堆大小为256MB。-Xmx1024m:设置JVM可以使用的最大堆大小为1024MB。
2024-12-09 09:07:43
1382
原创 JWT 原理与使用
JWT(JSON Web Token)是一种基于 JSON 格式的轻量级、自包含的身份验证和授权标准(RFC 7519)。它允许将用户信息和其他必要数据在各方之间以一种安全的方式进行传输。:包含令牌的类型(即 JWT)和所使用的签名算法(如 HMAC SHA256 或 RSA)。:包含声明(Claims)。声明是关于实体(通常是用户)和其他数据的声明。它们可以被分为三类:注册的声明、公共的声明和私有的声明。:用于验证消息在传输过程中未被篡改,并且,对于使用私钥签名的令牌,还可以验证发送者的身份。
2024-12-08 15:15:44
1735
原创 基于队列(Queue)的部分笔试题
给定一个队列,实现一个函数,用队列逆序打印所有元素,但不使用递归或额外的存储空间。设计一个队列,在入队时,保持队列中所有元素按从大到小的顺序排列。设计一个队列,要求能够在常数时间内支持获取队列中的最大值操作。用两个栈实现一个队列,支持入队和出队操作。(优先队列),它能在入队时自动保持元素按指定顺序排列。:将元素 x 添加到队列,并保持队列按大小顺序排列。)来实现,其中维护一个递减的队列来存储最大值。,实现一个支持高效操作的循环队列。,它们提供了线程安全的队列操作。:将元素 x 添加到队列尾部。
2024-12-06 16:30:00
1401
原创 数据结构---栈(Stack)
栈(Stack)是计算机科学中的一种抽象数据类型,它遵循特定的操作顺序,即后进先出(Last In First Out,LIFO)。
2024-12-05 08:50:35
840
原创 ArrayList相关面试题
ArrayList是基于动态数组实现的,支持快速的随机访问,但在插入和删除元素时,尤其是删除中间元素时,性能较差。通过结合源码分析,可以看到扩容、删除、查找等操作的具体实现。
2024-12-04 09:01:22
567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅