自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(675)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java 三色标记算法:并发垃圾回收的核心技术解析

三色标记算法的核心思想是通过三种颜色标记对象的存活状态,以此区分对象是否需要被回收,同时为并发标记提供状态依据。白色:初始状态下所有对象均为白色,代表对象尚未被垃圾回收线程访问和标记。若标记流程结束后对象仍为白色,则表示该对象不可达,属于可回收的垃圾对象。灰色:对象已被垃圾回收线程访问,但该对象引用的所有子对象尚未完成标记。灰色对象是标记流程的中间状态,垃圾回收线程需进一步遍历其引用关系。黑色:对象及其引用的所有子对象均已完成标记,代表该对象是应用运行必需的存活对象。

2025-11-28 00:01:29 1000 1

原创 Neo4j 完全指南:从核心特性到 Java 实战(附企业级应用场景)

Neo4j作为原生图数据库,在关联密集型场景中具有不可替代的优势,Java开发者通过Spring Data Neo4j可快速集成到项目中。理解“节点-关系-属性”的图模型,告别关系型数据库的JOIN思维。熟练使用Cypher查询语言,高效操作图数据。遵循数据建模和性能优化最佳实践,确保生产环境稳定运行。

2025-11-26 23:29:56 816

原创 JVM 内存结构:全面解析与面试重点

一块极小的内存空间(通常仅占用几个字节),可看作当前线程执行字节码的「行号指示器」。线程执行 Java 方法时,存储当前正在执行的字节码指令的地址(偏移量);线程执行 Native 方法时,计数器值为undefined(因为 Native 方法由本地语言实现,无字节码)。线程执行 Java 方法时的内存模型,每个方法执行时都会创建一个栈帧(Stack Frame)并压入栈中,方法执行完毕后栈帧出栈。

2025-11-25 22:46:28 431

原创 日均 1000W 订单场景下的近 30 天查询数据存储设计方案

本方案通过「分库分表+读写分离+缓存加速+冷热分离高吞吐写入:分库分表降低单库单表压力,MySQL主从复制支撑高写入并发。低延迟查询:多级缓存+索引优化,保障查询响应时间≤100ms。高扩展性:水平扩容能力,应对业务10倍增长。低成本:冷热分离降低存储成本,缓存提高资源利用率。适用于电商、支付、外卖等需要高频订单查询的场景,可根据实际业务需求(如是否需要历史订单统计、查询维度是否增加)调整存储方案(如引入Elasticsearch支持全文检索)。

2025-11-23 23:14:20 793

原创 MySQL 锁机制深度解析:从原理到实践

MySQL 锁机制是平衡数据一致性与并发性能的关键,理解不同锁的适用场景及实现原理,是解决高并发问题的基础。实际开发中,需结合业务特点选择合适的锁策略,通过索引优化、事务设计及监控手段,最大化数据库的并发能力同时保证数据安全。掌握锁机制,不仅能避免常见的并发问题,更能为高性能数据库设计提供核心支撑。

2025-11-18 00:30:11 345 1

原创 Redis 大 Key 深度解析:危害、检测与治理实践

Redis大Key并没有官方明确定义,通常指占用内存空间过大的键,或包含大量元素的集合类键。内存维度:单个键值对占用内存超过100MB(视业务场景可调整)元素维度:集合类键(List/Hash/Set/ZSet)包含的元素数量超过10000个String:通常是单个value过大(如存储大型JSON、二进制文件)Hash/Set:字段或元素数量过多,或单个字段值过大List/ZSet:链表长度过长,或元素值过大大Key治理是Redis运维的长期课题,需要"预防为主,防治结合。

2025-11-14 00:06:54 660

原创 Redis 实现分布式锁:原理、实践与最佳实践

必须使用唯一标识:确保释放锁时不会误删其他客户端的锁设置合理的过期时间:结合业务场景评估,避免过短或过长避免锁粒度过大:减小锁的范围,提高并发效率使用集群部署:通过主从+哨兵或 Redis Cluster 保证高可用失败重试机制:获取锁失败时,采用有限次数的重试策略监控与告警:对锁的获取成功率、持有时间等指标进行监控基于 Redis 的分布式锁实现需在性能、安全性和可用性之间寻找平衡。理解其核心原理并结合业务场景选择合适的方案,才能构建可靠的分布式锁服务。

2025-11-12 23:04:39 715

原创 Kafka Partition 深度解析:原理、策略与实战优化

Partition 作为 Kafka 架构的核心,通过分布式存储、并行处理和副本机制,奠定了 Kafka 高吞吐、高可用的基础。理解 Partition 的存储结构、副本机制和分区策略,是用好 Kafka 的前提。在实际应用中,需结合业务场景选择合适的分区数和分区策略,通过参数调优平衡性能、顺序性和可靠性。合理运用 Partition 机制,能让 Kafka 在日志收集、实时计算等场景中发挥最大价值,为分布式系统提供稳定高效的消息流转能力。

2025-11-11 23:49:33 1108 2

原创 深入理解 ThreadLocal、InheritableThreadLocal 与 TransmittableThreadLocal

ThreadLocal 是线程本地变量的基础,InheritableThreadLocal 解决了父子线程传递,而 TransmittableThreadLocal 则填补了线程池场景下的空白。理解三者的原理与差异,才能在实际开发中根据场景选择最合适的工具,实现安全高效的线程上下文管理。在现代 Java 应用中,线程池是标配,因此 TransmittableThreadLocal 已成为分布式追踪、日志链路、权限上下文等场景的首选方案。

2025-11-10 20:10:33 489

原创 # Kafka 消费堆积:从现象到解决的全链路分析

Kafka 消费堆积是一个涉及生产端、消费端、集群配置等多方面的综合性问题。解决这一问题需要开发者具备系统化的排查思路,从指标监控、日志分析到配置优化,逐步定位根源并采取针对性措施。同时,通过建立完善的预防机制,可有效降低消费堆积的发生概率,保障 Kafka 消息队列的稳定运行,为业务系统提供可靠的消息传递支持。

2025-08-05 22:31:19 823

原创 VMware VMDK 文件瘦身全攻略:释放空间,提升性能

VMDK 文件的 "只增不减" 特性源于其存储机制: 动态扩展磁盘会根据数据写入动态分配物理空间, 但删除文件后不会自动回收. 快照, 临时文件, 日志等因素会加剧空间占用. 若直接删除虚拟机配置文件, 实际存储的 VMDK 文件仍会保留.

2025-03-19 22:21:50 2540

原创 CopyOnWriteArrayList:写时复制实现的高并发列表

通过写时复制策略,在保证线程安全的同时实现了高效读操作,是解决读多写少并发问题的理想选择。但需注意其内存开销和最终一致性特性,合理设计数据结构与使用场景,才能发挥最大效能。下期预告:并发容器深度解析之的分段锁演进。

2025-03-12 13:23:25 688

原创 Redis Cluster 客户端定位分片全解析:哈希槽与动态路由机制

Redis Cluster客户端通过CRC16哈希槽算法和动态错误重定向实现高效分片路由。掌握和命令,结合客户端库的自动路由能力,可轻松构建分布式Redis应用。

2025-03-09 14:38:36 1204

原创 Flowable 概述:轻量级开源工作流引擎的技术解析

Flowable 是基于 Apache 2.0 协议的开源工作流引擎,专注于提供轻量级、高性能的业务流程管理解决方案。它支持完整的 BPMN 2.0 规范,提供从流程建模、执行到监控的全生命周期管理能力。作为 Activiti 项目的分支,Flowable 在保持原有功能的基础上,通过优化架构和社区协作,成为企业级流程管理的首选方案之一。核心特性:客户端Flowable API流程引擎任务服务表单服务数据库三、技术优势与亮点1. 高性能处理执行树优化:基于状态机的流程实例管理批量操作:支持任务批处

2025-03-08 20:15:04 2203

原创 Redis 持久化配置:保障数据安全与可恢复性

Redis 提供了两种主要的持久化方式:RDB(Redis Database)和 AOF(Append - Only File),下面分别介绍这两种方式的特点和配置方法。Redis 的持久化机制为我们提供了保障数据安全和可恢复性的重要手段。RDB 持久化适合用于数据恢复速度要求较高、可以容忍一定数据丢失的场景;AOF 持久化则更适合对数据安全性要求较高的场景。在实际应用中,可以根据具体的业务需求,选择合适的持久化方式或同时使用两种方式,以达到最佳的效果。

2025-03-06 21:44:30 1224

原创 Kafka 消息不丢失:全方位保障策略

要确保 Kafka 消息不丢失,需要从生产者、Broker 和消费者三个层面进行综合考虑和配置。生产者通过合理设置确认机制和重试机制,Broker 利用多副本、最小同步副本数和刷盘策略,消费者采用手动提交偏移量和异常处理等方法,全方位保障消息的可靠传输。在实际应用中,需要根据具体的业务场景和性能要求,灵活调整这些配置,以达到消息可靠性和系统性能的平衡。

2025-03-06 09:41:01 897

原创 布隆过滤器原理详解:高效解决大规模数据去重与查询问题

布隆过滤器通过概率模型与哈希技术的结合,在大规模数据处理场景中展现了卓越的性能。尽管存在误判率,但通过合理设计参数和结合业务场景,它能有效解决传统数据结构在空间和效率上的瓶颈问题。在缓存、去重、过滤等场景中,布隆过滤器已成为不可或缺的工具。

2025-03-04 09:51:24 1106

原创 深入解析Java虚拟机(JVM)的核心组成

启动类加载器(Bootstrap)、扩展类加载器(Extension)和应用类加载器(Application)三级联动,确保类加载的安全性和唯一性。加载过程分为加载、验证、准备、解析和初始化五个阶段,其中验证阶段通过字节码校验确保程序的合法性,初始化阶段则触发类变量的赋值和静态代码块执行。垃圾回收器(GC)作为执行引擎的重要组成,通过标记-清除、复制、标记-整理等算法回收堆内存,G1、ZGC等新型GC实现低停顿高效回收。本地方法库封装了底层系统调用,如文件操作、网络通信等,拓展了Java的功能边界。

2025-03-03 16:35:35 609

原创 深入剖析 Netty:高性能网络编程框架的奥秘

Netty 还支持用户自定义编解码器,用户可以根据自己的业务需求实现个性化的编解码逻辑,进一步提高系统的性能和灵活性。

2025-02-28 17:04:47 833

原创 Java 并发编程:Fork/Join 框架深度解析与实战

Fork/Join 框架是 Java 并发编程中的高级工具,基于“分而治之”(Divide-and-Conquer)策略设计。该框架特别适合处理可递归分解的问题(如数组求和、快速排序等),能充分利用多核 CPU 的性能优势。Fork/Join 框架通过高效的任务拆分和负载均衡机制,为 Java 开发者提供了强大的并行计算能力。合理使用该框架能显著提升多核环境下的程序性能,但需注意任务粒度控制和线程安全问题。本文深入讲解 Java 7 引入的 Fork/Join 框架,通过分治思想实现任务并行处理。

2025-02-27 10:50:55 943

原创 深度剖析Spring Cloud生态常用组件

Spring Cloud生态中的这些常用组件,各自承担着不同的职责,相互协作,共同构建了强大的微服务架构。服务注册与发现组件确保了微服务之间的相互发现和通信;负载均衡组件提高了系统的性能和可用性;熔断与限流组件保障了系统在面对故障和高并发时的稳定性;网关组件实现了对微服务的统一管理和访问控制;配置管理组件方便了对分布式系统配置的集中管理;远程调用组件简化了微服务之间的通信;分布式追踪组件帮助开发者排查系统问题;消息队列组件实现了微服务之间的异步通信和解耦。

2025-02-26 16:35:53 808

原创 在线会议时, 笔记本电脑的麦克风收音效果差是为什么

正确设置麦克风默认设备, 确保收音效果.

2025-02-26 14:48:07 1890

原创 Kafka高性能背后的奥秘:深度剖析其关键技术与设计理念

Kafka的高性能并非偶然,而是其在架构设计、数据存储、消息处理和通信协议等多个方面精心设计和优化的结果。分布式架构提供了强大的扩展性和负载均衡能力,顺序读写和Page Cache等存储技术充分挖掘了磁盘和内存的性能潜力,批量与异步的消息处理策略减少了系统开销,提高了并发性能,而简洁高效的通信协议则确保了数据传输的快速与稳定。这些关键技术的协同作用,使得Kafka能够在大数据和分布式系统领域中脱颖而出,成为处理海量消息和实现高并发应用的首选消息队列。

2025-02-25 13:51:32 534

原创 如何设计一个秒杀系统

通过以上步骤,可以设计一个高并发、高性能、高可用的秒杀系统。

2025-02-24 09:23:04 903

原创 分享某博主对程序员职业困境的看法

老板朋友认为, 有大局观, 从项目整体考虑的工匠(对应第一个工匠)是公司需要的;普通员工按要求完成工作(第三个工匠)也不错;同时提升沟通, 产品, 表达, 销售等可迁移能力, 以应对如 AI 发展带来的职业变化.老板朋友指出很多技术人员易陷入技术陷阱, 做技术虽需精益求精, 但多数人做的是工程而非科研, 不应只专注技术, 还应关注用户需求和产品销售.他还认为, 在互联网公司中, 技术岗位和保安一样变现能力差, 因为离用户远, 一旦失业很难变现. 程序员接外包更多靠渠道而非技术能力.

2025-02-21 09:24:19 275

原创 提升接口性能之异步

异步编程和消息队列是提升系统性能和响应速度的关键技术. 合理运用 CompletableFuture, async/await 等异步模型, 以及 Kafka, RabbitMQ 等消息队列, 能有效避免线程阻塞, 处理高并发请求, 实现系统的高效稳定运行. 在实际项目中, 需根据业务需求和场景选择合适的技术方案, 以达到最佳优化效果. 随着技术的不断发展, 异步编程和消息队列将在更多领域发挥重要作用, 为开发者提供更多创新的可能.

2025-02-19 10:07:39 683

原创 提升接口性能之缓存

本地缓存适用于减少单个应用内的重复计算和数据库查询, Caffeine 和 Guava Cache 提供了便捷的实现方式. 分布式缓存如 Redis 和 Memcached 则用于缓存全局共享数据, 通过缓存预热和防雪崩策略能有效降低数据库压力. HTTP 缓存则通过控制客户端和 CDN 对静态资源的缓存, 进一步提升了用户访问速度. 合理运用这三种缓存策略, 可以构建出高性能, 高可用的应用系统.

2025-02-18 14:40:06 781

原创 VSCode 实用快捷键

修改位置: 文件 > 首选项 > 键盘快捷方式VSCode 内置的快捷键非常丰富, 另外也支持自定义快捷键, 快快使用起来吧。

2025-02-17 10:19:48 926

原创 更高效实用 vscode 的常用设置

VSCode 各种自定义设置方便我们个性化使用 VSCode, 极大提高文本阅读和编辑效率.下一篇, 会介绍 VSCode 常用快捷键, 鼠标+键盘搭配操作可以更高效地操作文本。

2025-02-14 10:56:48 941

原创 十分钟三步安装本地 DeepSeek大语言模型

三步下载安装配置, 即可创建本地 AI 大模型, 非常简单。

2025-02-13 10:17:21 530

原创 String StringBuilder StringBuffer 区别

String, StringBuilder, StringBuffer 各有使用场景, 按照具体需求, 选择它们使用, 以提高程序的性能和稳定性。

2025-02-12 09:58:28 344

原创 分布式锁有哪些

Redis 和 Zookeeper 都有各自的优势和适用场景。如果项目中没有用到 zookeeper, 那么使用 redis 作为分布式锁, 可以减少中间件依赖, 同时实现分布式锁需求。

2025-02-11 10:00:48 368

原创 常见的网关

常见网关按照从老到新的顺序。

2025-02-10 09:54:24 1785

原创 mysql 可重复读是如何防止幻读的

mysql 可重复读是如何防止幻读的。

2025-02-09 10:06:20 146

原创 联合索引的最左匹配原则

例如 创建 name, age, city 的联合索引, 那么索引生效的条件可以是以下 where 任一情况。联合索引可以理解为多个独立索引(独立索引可能是单字段也可能是多字段)联合索引: 顾名思义就是在多个列上建立的索引。最左匹配原则即是如此. 如果要。

2025-02-07 10:01:05 233

原创 MySQL 索引类型

全文索引: 对文本的内容进行分词, 进行搜索. 目前只有 CHAR, VARCHAR , TEXT 列上可以创建全文索引. 一般不会使用, 效率较低, 通常使用搜索引擎如 ElasticSearch 代替.前缀索引: 对文本的前几个字符创建索引, 相比普通索引建立的数据更小, 因为只取前几个字符.主键索引: 加速查询 + 列值唯一(不可以有 NULL)+ 表中只有一个.联合索引: 多列值组成一个索引, 专门用于组合搜索, 其效率大于索引合并.覆盖索引: 一个索引包含(或者说覆盖)所有需要查询的字段的值.

2025-02-06 10:37:14 346

原创 MySQL 的 binlog 作用

数据写入时, 保证数据的一致性和可恢复性, 顺序依次是。主要用于记录数据修改日志, 数据备份, 主从同步。> 数据真正写入磁盘保存。

2025-02-05 10:53:02 196

原创 如何快速创建一个vue项目

配置 node 环境创建 vue 项目启动 vue 项目。

2025-01-23 10:06:39 390

原创 linux 的软连接和硬连接区别

linux 的软连接和硬连接是重要的概念, 那么它们有何异同之处呢?

2025-01-22 10:00:33 1582

原创 https 的 CA证书和电子签名

防公私钥伪造, 因而产生CA机构和CA签名.服务器上传服务器公钥到CA机构, CA机构用CA私钥对服务器公钥生成数字签名客户端通过内置CA根证书, 使用CA公钥验证签名是否正确。

2025-01-21 09:51:12 598

MavenRunHelper.zip

idea 插件 maven helper, 用于快速定位 maven 依赖, 支持 idea 版本 2019.3+

2021-01-28

空空如也

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

TA关注的人

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