- 博客(38)
- 收藏
- 关注

原创 Java Synchronized底层原理:Monitor机制、锁膨胀、自旋优化与偏向锁细节解密
关键词Java并发Synchronized原理锁升级机制对象头Monitor本文将深入解析Java中关键字的底层实现,涵盖对象头结构、Monitor机制、锁升级流程等核心内容,帮助开发者理解高并发场景下的锁优化策略。无论是面试准备还是性能调优,本文都能为你提供清晰的技术洞察!机制优势劣势适用场景偏向锁单线程零成本加锁撤销开销大明确单线程访问轻量级锁CAS无阻塞竞争自旋消耗CPU低竞争、短临界区重量级锁高竞争下稳定上下文切换开销高并发、长临界区。
2025-03-31 17:16:20
1443

原创 美团Leaf分布式ID生成器:雪花算法原理与应用
美团Leaf分布式ID生成器:雪花算法原理与应用提供了高可用、高性能的分布式ID解决方案。本文重点解析Leaf中**雪花算法(Snowflake)**的使用与优化技巧。是保证数据一致性的核心技术之一。传统方案(如数据库自增ID、UUID)存在性能瓶颈或无序性问题,而。:电商订单、物流跟踪、实时消息等需要有序唯一ID的业务。美团Leaf分布式ID生成器:雪花算法原理与应用
2025-03-25 11:16:08
5125
原创 Java线程池详解
new ArrayBlockingQueue<>(100), // 有界队列new ThreadFactory() { // 自定义线程工厂},new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略。
2025-04-01 22:06:35
621
原创 Java的设计模式详解
设计模式(Design Pattern)是经过验证的、可重复使用的代码设计经验总结,分为创建型结构型和行为型三大类,共23种经典模式。
2025-04-01 22:01:51
251
原创 Spring Boot整合Redis
提供了与Redis的无缝整合能力,使开发者能够快速实现高效的数据缓存与存储。本文将手把手教你如何在Spring Boot项目中整合Redis,并通过实际案例展示其核心用法。Redis作为高性能的键值存储数据库,在缓存、会话管理、排行榜等场景中被广泛应用。Spring Boot通过。Spring Boot已自动配置。
2025-03-30 19:45:00
846
原创 Spring Boot整合Nginx
在现代Web开发中,Nginx凭借其高性能、高并发能力和灵活的配置,成为开发者首选的服务器工具之一。无论是作为反向代理、负载均衡器,还是静态资源服务器,Nginx都能显著提升系统的性能和可靠性。假设有一个Spring Boot应用运行在。,帮助你全面掌握这一技术栈。修改Nginx配置文件。
2025-03-29 17:32:06
606
原创 用Nginx实现负载均衡与高可用架构(整合Keepalived)
在分布式架构中,负载均衡和高可用是保障系统稳定性的两大核心能力。本文将深入讲解如何通过Nginx实现七层负载均衡,并结合Keepalived构建无单点故障的高可用架构。文末附完整配置模板!通过Nginx实现负载均衡可提升系统吞吐量,而结合Keepalived的高可用方案能确保服务零中断。根据业务场景选择合适的负载算法VIP需与物理网络在同一子网生产环境建议使用双主+健康检查增强模式。
2025-03-29 17:30:23
719
原创 深入剖析ReentrantLock底层原理:从AQS到公平锁的源码级解析
关键词ReentrantLock原理AQS机制公平锁条件变量可重入锁本文深入解析Java并发包中的实现,涵盖AQS核心机制、公平/非公平锁差异、Condition条件变量等核心内容,结合源码与流程图,彻底揭示其高并发设计的精妙之处!的底层依赖AQS框架Q:AQS为什么用双向链表?A:便于处理取消节点(CANCELLED状态),快速移除失效节点。Q:ReentrantLock如何实现可重入?A:通过state计数器记录重入次数,释放时递减至0才完全释放。Q:非公平锁是否会导致饥饿?
2025-03-28 17:31:07
768
原创 Spring解决循环依赖
循环依赖(Circular Dependency)指两个或多个组件相互直接或间接依赖,形成闭环引用关系。在Spring框架中,主要表现为Bean之间的相互注入。Spring通过三级缓存机制这是框架层面的补救措施,而非设计推荐构造器注入的循环依赖无法解决原型作用域的Bean不支持循环依赖复杂项目应通过代码重构消除循环依赖。
2025-03-27 11:04:52
986
原创 Java基础知识-动态代理
动态代理的本质:通过运行时生成的代理类,在目标方法调用前后插入统一处理逻辑。适用场景需要为多个类添加相同功能开发通用框架(如Spring)实现横切关注点(日志、事务等)处理远程方法调用(RPC)最佳实践优先面向接口编程保持InvocationHandler的轻量化注意处理受检异常避免在代理方法中调用this。
2025-03-26 17:04:39
373
原创 Java基础知识-反射
Java反射(Reflection)是Java语言的核心特性之一,它允许程序在运行时(Runtime)动态地操作类和对象。获取任意类的Class对象构造任意类的实例访问任意类的字段和方法调用任意对象的方法操作数组实现动态代理// 获取Class对象的三种方式Class<?// 类.classClass<?// 对象.getClass()Class<?// 全类名加载。
2025-03-26 16:53:52
258
原创 Spring Boot 整合 Nacos 注册中心终极指南
通过本文的整合指南,您可以快速将Spring Boot服务接入Nacos注册中心。建议重点关注版本兼容性心跳配置和网络设置这三个核心要点。实际部署时,推荐结合Nacos集群部署方案提升系统可靠性。
2025-03-25 11:28:55
1324
原创 Spring Boot整合SSE实现消息推送:跨域问题解决与前后端联调实战
本文记录了一次完整的Spring Boot整合Server-Sent Events(SSE)实现实时消息推送的开发过程,重点分析前后端联调时遇到的跨域问题及解决方案。通过注解的实际应用案例,帮助开发者快速定位和解决类似问题。跨域问题定位:当出现错误时,首先检查前端请求地址与后端允许的源连接管理要点及时清理失效连接使用线程安全集合添加心跳检测机制生产环境建议使用Nginx反向代理统一端口配置HTTPS加密通信踩坑心得。
2025-03-25 11:22:00
826
原创 Spring Boot整合阿里云OSS实现文件上传(超详细教程)
阿里云对象存储服务(Object Storage Service,简称OSS)是一种海量、安全、低成本、高可靠的云存储服务。它适合存储任意类型的文件,适用于海量数据存储、图片/视频存储、静态网站托管等场景。
2025-03-24 18:11:23
624
原创 Spring Boot 整合 RabbitMQ:注解声明队列与交换机详解
通过 Spring Boot 整合 RabbitMQ,开发者可以快速实现消息队列的声明、消息的发送与消费。依赖配置:引入并配置连接信息。注解声明:使用@Bean定义队列、交换机及绑定规则。生产者与消费者:通过发送消息,监听队列。交换机路由:根据业务需求选择合适的交换机类型(如 Direct、Topic)。实际开发中,可结合消息确认、持久化等机制提升系统可靠性。适合精准路由。支持灵活的多级路由。用于广播场景。
2025-03-23 21:30:04
1421
原创 RabbitMQ 详细原理解析
RabbitMQ 通过 AMQP 协议定义了标准化的消息通信模型,以生产者-交换机-队列-消费者为核心链路,结合虚拟主机的隔离能力,实现了高效、可靠的消息传递。其灵活的路由机制、持久化支持和多语言兼容性,使其成为分布式系统中消息中间件的首选方案。理解其核心组件和消息流转原理,是构建高可用、松耦合系统的关键基础。
2025-03-23 21:22:55
695
原创 Seata分布式事务框架及四种模式原理解析
Seata通过多种事务模式覆盖不同业务场景,开发者需根据业务特性(一致性、性能、复杂度)选择合适方案。AT模式适合快速落地,TCC/Saga应对复杂逻辑,XA模式保障强一致。
2025-03-22 17:06:25
626
原创 Zookeeper 核心原理详解以及快速搭建
Zookeeper 通过 ZAB 协议、ZNode 数据模型和 Watch 机制,为分布式系统提供高效可靠的协调服务。理解其原理有助于在微服务、大数据等场景中合理设计系统架构,规避分布式环境下的常见问题。随着云原生技术的发展,Zookeeper 仍是在一致性要求严格的场景下的重要基础设施。
2025-03-21 11:44:41
799
原创 前后端联调解决跨域问题的方案
跨域问题是前后端分离架构中常见的一个问题。通过在 Spring Boot 中使用注解,我们可以非常方便地解决这个问题。我们可以选择局部配置(仅限于某些方法)或者全局配置(适用于整个应用)来满足不同的需求。在实际开发中,针对不同的跨域需求,灵活使用注解,将极大提高开发效率,避免不必要的跨域请求错误。希望本文对你解决跨域问题有所帮助!如果你有任何问题,欢迎留言讨论。
2025-03-20 20:13:02
644
原创 分布式事务解决方案:Seata原理详解与实战教程
在微服务架构中,跨服务的事务管理成为核心痛点:Seata(Simple Extensible Autonomous Transaction Architecture) 是阿里开源的分布式事务解决方案,提供 AT模式、TCC模式、Saga模式 三种事务模型,支持高并发场景下的数据一致性。执行流程:TMTCRM1RM21. 开启全局事务(XID)生成XID2. 执行分支事务(注册分支)上报分支状态3. 执行分支事务(注册分支)上报分支状态4. 提交/回滚全局事务通知提交/回滚通知提交/回滚TMTCRM1RM2
2025-03-19 20:31:13
1268
原创 美团Leaf分布式ID生成器使用教程:号段模式与Snowflake模式详解
美团Leaf通过两种互补模式,为不同场景提供了灵活的分布式ID生成方案。无论是高可用的号段模式,还是高性能的Snowflake模式,均可通过本文教程快速落地。建议结合自身业务特点选择合适的模式,并关注Leaf的GitHub仓库获取最新动态。参考。
2025-03-19 14:23:47
1073
原创 Sentinel规则详解
通过合理配置这三类规则,可以构建起完整的系统防护体系。建议在开发环境中使用Sentinel的。功能观察规则生效情况,生产环境建议配合Nacos实现规则持久化。通过控制请求流量保护系统,防止突发流量导致系统崩溃。
2025-03-18 19:08:25
1110
原创 美团Leaf分布式ID生成器:使用详解与核心原理解析
场景推荐模式是否需要源码高并发、可接受中心化号段模式是(需部署Leaf-Server)极致性能、去中心化Snowflake模式否(直接引用依赖)不想部署服务且需趋势递增自定义号段逻辑否(但需自行实现)最终建议如果追求开箱即用,直接使用Snowflake模式(引入依赖即可)。如果必须用号段模式,可参考 Leaf 的数据库设计,自行实现简化版号段管理,避免依赖 Leaf-Server。号段模式适合对数据库有容忍度的业务(如订单、用户体系)。Snowflake模式。
2025-03-17 11:53:28
1022
原创 高德地图猎鹰服务调用指南(Java后端)
本文为调用高德地图猎鹰服务的完整流程指南与电子围栏介绍,包含关键接口说明、代码示例及避坑要点。官方文档可能更新,建议以高德猎鹰服务文档为准。
2025-03-17 09:55:41
1561
原创 RabbitMQ 基本原理详解
RabbitMQ 是一个基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件,由 Erlang 语言开发。它支持多种消息传递模式,如点对点、发布/订阅等,能够满足不同场景的需求。高可靠性:支持消息持久化、确认机制等,确保消息不丢失。灵活性:支持多种交换机类型和路由规则。扩展性:支持集群部署和插件机制,适合大规模应用。多语言支持:提供丰富的客户端库,支持 Java、Python、Go 等多种编程语言。
2025-03-16 16:47:11
856
原创 Spring Boot整合RabbitMQ极简教程
访问管理界面:(账号/密码:guest/guest)2. Spring Boot项目配置① 添加依赖② 配置连接信息三、核心代码实现1. 生产者(发送消息)2. 消费者(接收消息)3. 自动创建队列(可选)四、测试消息收发控制台输出:五、扩展:常用注解与配置注解/配置说明监听队列或交换机消息处理消息的方法注解 + 声明交换机与队列绑定关系启用消费失败重试六、常见问题消息未消费连接失败消息重复消费通过Spring
2025-03-15 13:57:12
549
原创 URL拼接重复参数问题
在调用第三方API时,手动拼接URL参数容易因编码或重复拼接引发隐藏Bug。Spring框架提供的 UriComponentsBuilder。可自动处理编码和参数拼接,避免低级错误。掌握以上方法,从此告别URL拼接低级错误!),服务端解析异常!
2025-03-15 13:51:07
244
原创 Spring Boot整合JWT 实现双Token机制
JWT为现代分布式系统提供了优雅的认证解决方案,但实际落地时需综合考虑安全、性能、用户体验等多维度因素。建议结合具体业务场景选择合适的Token管理策略。
2025-03-14 19:43:20
961
原创 Apifox Helper 自动生成API接口文档
是 Apifox 团队针对 IntelliJ IDEA 环境所推出的插件,可以在 IDEA 环境中识别本地 Java、Kotlin 后端项目的源代码,自动生成 API 文档并一键同步到 Apifox 的项目中。在我们开发过程中我们在编写请求地址和编写请求参数的时候特别花费时间耗费了我们很多时间,作为一个程序员,更应该把精力时间集中在开发上,点击项目进行上传,微服务项目需要创造多个目录,否则所有接口会生成在一个目录导致分不清。:在左侧目录树的模块节点,点击右键,选择「Upload to Apifox」
2025-03-14 18:01:24
478
原创 用Lua脚本实现Redis原子操作
通过Lua脚本,可以轻松实现Redis复杂操作的原子性,解决高并发下的竞态条件问题。在Spring Boot中,结合。,能够高效集成Lua脚本。
2025-03-12 16:15:58
911
原创 在VMware Workstation Pro上轻松部署CentOS7 Linux虚拟机
首先我们需要下载VM虚拟机和Centos7的镜像下载并安装VMware Workstation Pro访问VMware Workstation Pro官网下载第二步:下载centos7镜像访问centos官网下载开始部署Centos7点击创建新的虚拟机这里是Centos7的路径然后命名和选择虚拟机保存路径到这里已经成功创建好了虚拟机。
2025-03-12 16:14:42
838
原创 JavaWeb开发中PO、VO、DTO、DAO、POJO的区别
构建清晰的代码分层结构提高代码可维护性和扩展性避免数据泄露和安全风险在实际项目中,根据业务复杂度灵活选择对象层级,切忌盲目套用设计模式。参考资料《阿里巴巴Java开发手册》Martin Fowler《企业应用架构模式》相关工具MapStruct官方文档。
2025-03-10 17:41:57
1478
原创 解决IDEA里Maven解析过慢问题
找到Maven文件里的conf,再将setting.xml文件的mirrors里面插入以下代码,配置阿里云仓库。最后将本地仓库重写为新的。
2025-01-03 17:05:31
417
原创 uniapp图片上传功能前后端代码(java)
重要点就 这两个,接受格式和后端的业务逻辑代码,(我这里是上传到阿里云OSS)上传的代码详细见(java上传文件至阿里云OSS)注意点:1.接口名 2.文件大小和类型限制 3.后端服务器要启动 4.如果前后端分离部署,确保后端支持跨域请求(CORS)//从相册选择album,从摄像机选择camera。//可以指定是原图还是压缩图,默认二者都有。//这里面是和图片一起传过来的数据。//默认为9,我们一次上传一张。//仅为示例,非真实的接口地址。"图片上传至本地成功""图片上传至本地失败"
2024-10-21 16:29:38
1452
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人