自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 css 布局简述

grid-template-columns / grid-template-rows: 定义网格轨道大小,同时隐式创建网格线/* 基础用法:定义网格轨道 *//* 3条列轨道 *//* 2条行轨道 *//* 命名网格线:为网格线命名以便引用 *//* fr 单位:按比例分配可用空间 *//* 1:2:1 比例的3条轨道 *//* repeat() 函数:重复模式 *//* 重复创建3条等宽轨道 *//* 重复轨道和网格线名 *//* 响应式轨道:根据容器大小自动调整 */

2025-08-22 20:18:32 773

原创 C++ 内存布局

深入理解 C++ 内存布局对于编写高性能代码至关重要。本文从进程虚拟内存、数据对齐、对象布局等层面系统分析 C++ 的内存组织方式。

2025-08-22 20:17:12 603

原创 C++ 值简述

C++的值类别系统是理解现代C++特性的基础。本文将介绍值类别的概念和引用类型。

2025-08-22 20:15:53 212

原创 Spring Boot + SSH 客户端:在浏览器中执行远程命令

本文介绍了如何使用Spring Boot开发一个基础的Web SSH客户端。通过JSch库处理SSH连接,WebSocket实现实时通信,JdbcTemplate进行数据存储,我们构建了一个功能完整的Web SSH解决方案。这个项目适合作为学习WebSocket通信、SSH协议应用的实践案例。

2025-08-19 21:48:09 511

原创 SpringBoot 实现网络流量抓包与实时分析

在现代企业网络环境中,网络故障排查、性能监控、安全审计等需求日益增长,传统的网络监控工具往往操作复杂、难以与业务系统集成。本文将详细介绍如何使用 Spring Boot + Pcap4j 构建一个功能完整的网络流量抓包与分析系统,实现实时监控、多协议解析、数据可视化等功能。网络故障排查困难:现有工具如 Wireshark 虽然功能强大,但操作复杂,无法轻松集成到业务系统中,难以实现自动化监控。实时监控能力不足:缺乏在应用层面的实时网络流量监控,无法及时发现网络异常和性能问题。数据分析割裂:抓包数据与业务数据

2025-08-19 21:47:28 695

原创 SpringBoot 实现在线查看内存对象拓扑图 —— 给 JVM 装上“透视眼”

这套方案把“重流程”的内存排查,压缩成两步生成快照 → 在线出图。当前实现还比较粗糙,不适合大面积进行分析, 适合局部锁定小范围定向分析,可作为基础原型DEMO参考。它不是取代 MAT,而是提供了一种“嵌入式、轻交互、随手查”的轻量解决方案作为一种补充手段。

2025-08-19 21:45:43 433

原创 Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升

MySQL连接池参数的优化是一个需要不断实践和调整的过程,没有一成不变的最优配置。开发者需要深入理解各个参数的含义和对性能的影响,结合实际的业务场景和服务器硬件配置,通过监控和分析,制定合理的优化策略。

2025-08-17 21:15:23 816

原创 Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践

传统批量插入方案对比: PreparedStatement批量插入在性能、内存消耗和安全性方面都明显优于Statement.executeBatch(),是处理中等规模数据的首选方案。对于小规模数据(10 万条以下),PreparedStatement已经足够高效;对于中等规模数据(10 万到 50 万条),可以通过调整批量大小和分块处理进一步优化性能。MySQL 批量加载(LOAD DATA)优势。

2025-08-17 21:13:23 670

原创 Java 与 MySQL 性能优化:MySQL全文检索查询优化实践

在当今数字化时代,内容管理系统(CMS)已成为企业和个人发布、管理和检索大量文本内容的核心工具。随着内容规模的不断扩大,高效的全文检索功能变得至关重要。MySQL作为最流行的关系型数据库之一,其InnoDB引擎从5.6版本开始支持全文索引功能,为CMS提供了一种强大且便捷的文本检索解决方案。然而,在实际应用中,CMS开发者和数据库管理员经常面临全文检索性能瓶颈。当内容量达到数十万甚至数百万条记录时,简单的全文检索实现可能导致响应时间延长、资源消耗增加,严重影响用户体验。

2025-08-17 21:12:15 915

原创 基于Redis的3种分布式ID生成策略

在分布式系统设计中,全局唯一ID是一个基础而关键的组件。随着业务规模扩大和系统架构向微服务演进,传统的单机自增ID已无法满足需求。高并发、高可用的分布式ID生成方案成为构建可靠分布式系统的必要条件。Redis具备高性能、原子操作及简单易用的特性,因此我们可以基于Redis实现全局唯一ID的生成。

2025-08-15 21:45:22 613

原创 Redis缓存降级的4种策略

缓存降级是指当缓存服务不可用或响应异常缓慢时,系统主动或被动采取的备选处理机制,以保障业务流程的连续性和系统的稳定性。与缓存穿透、缓存击穿和缓存雪崩等问题的应对策略相比,缓存降级更关注的是"优雅降级",即在性能和功能上做出一定妥协,但保证系统核心功能可用。通过合理实施Redis缓存降级策略,即使在缓存层出现故障的情况下,系统仍能保持基本功能,为用户提供持续可用的服务。这不仅提高了系统的可靠性,也为业务连续性提供了有力保障。

2025-08-15 21:44:45 859

原创 Redis缓存雪崩的5种应对措施

实际应用中,这些策略并非互斥,而是应根据业务特点和系统架构进行组合。完善的缓存雪崩防护体系需要技术手段、架构设计和运维监控的协同配合,才能构建真正健壮的高可用系统。通过合理实施这些策略,我们不仅能有效应对缓存雪崩问题,还能全面提升系统的稳定性和可靠性,为用户提供更好的服务体验。

2025-08-15 21:44:14 1003

原创 基于Redis的4种延时队列实现方式

在实际应用中,可根据系统规模、性能需求、可靠性要求和实现复杂度等因素进行选择,也可以组合多种方式打造更符合业务需求的延时队列解决方案。无论选择哪种实现,都应关注可靠性、性能和监控等方面,确保延时队列在生产环境中稳定运行。

2025-08-13 21:10:16 1063

原创 Redis中5种BitMap应用场景及实现

在实际应用中,BitMap最大的优势是极低的内存消耗和O(1)的操作复杂度,非常适合处理大规模集合的成员关系问题。通过合理设计键结构和操作逻辑,BitMap可以解决传统方案难以应对的海量数据统计与分析挑战。

2025-08-13 21:09:45 409

原创 Redis管道技术:提升Java应用中的Redis操作性能

Redis管道技术通过减少网络往返次数,显著提高了Redis操作的性能,特别适合批量操作场景。需要注意的是,虽然Redis管道可以显著提高性能,但也应注意其局限性,如不保证原子性、可能增加客户端内存压力等。在实际应用中,应根据具体场景选择合适的技术组合,例如管道+事务、管道+Lua脚本等,以获得最佳的性能和可靠性平衡。

2025-08-13 21:09:04 752

原创 Kafka源码(二)分区新增和重分配

分区变更操作涉及两个重要的znode。/brokers/topics/{topic}:存储了topic分区的分配情况,称为assignment。其中partitions存储了每个分区的副本replicas,每个replica表现为brokerId。/brokers/topics/{topic}/partitions/{partitionId}/state:存储了分区的状态,包含当前分区的leader和isr列表,称为。

2025-08-12 21:39:51 975

原创 Kafka源码(一)Controller选举与创建Topic

Kafka集群中的Controller是一个特殊的broker,负责管理整个集群的元数据和协调各种关键操作,其中就包含了Topic管理。Controller选举涉及两个重要的ZNode。controller临时节点,data部分的brokerId即为当前集群的controller。controller_epoch持久节点,data部分是当前controller的任期。如果controller下发指令时,其他broker校验epoch不通过,则不会遵循这个controller的指令。

2025-08-12 21:35:26 802

原创 【无标题】

Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。消息:Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会分批次写入 Kafka,批次就代指的是一组消息。主题:消息的种类称为 主题(Topic),可以说一个主题代表了一类消息。相当于是对消息进行分类。主题就像是数据库中的表。分区:主题可以被分为若干个分区(part

2025-08-12 21:29:15 979

原创 Kafka百万消息积压救火指南:半小时从瘫痪到通畅

某电商大促期间,通过自动扩容策略,在3分钟内消化了350万条积压消息,避免千万级损失。:Kafka积压不是技术问题,是系统预警。:分区扩容后,必须同步增加消费者实例数,否则可能适得其反!:生产者TPS突然飙升(如从1k/s到10k/s)

2025-08-12 21:23:35 406

原创 Java设计模式之建造者模式

将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。

2025-08-11 19:18:03 530

原创 Java服务限流方式

固定窗口算法通过在单位时间内维护一个计数器,能够限制在每个固定的时间段内请求通过的次数,以达到限流的效果。算法实现起来也比较简单,可以通过构造方法中的参数指定时间窗口大小以及允许通过的请求数量,当请求进入时先比较当前时间是否超过窗口上边界,未越界且未超过计数器上限则可以放行请求。

2025-08-11 19:17:29 221

原创 Java线程池的隐藏坑

使用线程池时,如果没有给线程池一个有意义的名称,将不好排查回溯问题。这不算一个坑吧,只能说给以后排查埋坑,因为个人觉得这个还是比较重要的。/***/System.out.println("关注公众号:捡田螺的小男孩");});可以发现,默认打印的线程池名字是pool-1-thread-1,如果排查问题起来,并不友好。因此建议大家给自己线程池自定义个容易识别的名字。System.out.println("关注公众号:捡田螺的小男孩");});

2025-08-11 19:16:06 599

原创 数据分析实战项目——电商用户行为分析及可视化

本项目以阿里巴巴移动电商平台的真实用户-商品行为数据为基础,使用SQL进行数据清洗,以AARRR模型、RFM模型为基础展开分析,再用Tableau做可视化,最后从提升用户活跃度、促进商品成交、差异化用户营销三个方面提出建议。

2025-08-08 21:43:01 762

原创 从 0 到 1 落地 SpringBoot+RocketMQ:架构师亲授分布式通信最优解

SpringBoot 集成 RocketMQ 的本质,是通过消息驱动架构实现系统解耦。流量削峰:在秒杀等高峰期,通过消息队列缓冲请求,保护下游系统异步通信:将非实时依赖转为异步消息,提升主流程响应速度(如订单创建后异步通知物流)系统韧性:单个服务故障不会影响整个链路,提高系统容错能力数据一致性:通过事务消息保证跨服务操作的最终一致性最后给架构选型的建议:没有银弹,只有最合适。RocketMQ 适合中大型分布式系统,尤其是金融、电商等对可靠性要求高的场景;

2025-08-08 21:40:10 537

原创 深度对比:RocketMQ 凭什么成为阿里系首选消息队列?

RocketMQ 的 NameServer 高可用单节点 NameServer 存在单点风险,生产环境需部署 3 + 节点,Producer/Consumer 配置多个 NameServer 地址(用分号分隔)Kafka 的分区数量陷阱分区数并非越多越好,每个分区都会占用内存和文件句柄,建议单个 Broker 的分区总数不超过 2000RabbitMQ 的内存控制默认配置下,内存使用达到 40% 会阻塞生产者,需通过vm_memory_high_watermark参数调整阈值RocketMQ 凭借。

2025-08-08 21:39:37 437

原创 Springboot消息堆积如何破局,如何实现高吞吐零失误

Redis List:实现简单,适合对消息处理顺序有严格要求、不需要复杂消息确认机制的场景。:功能更强大,支持持久化、多消费者组、消息确认等,适合高并发、高吞吐、需要消息可靠处理的场景。

2025-08-07 21:42:51 414

原创 Spring Boot 中整合 Feign 客户端时,配置日志的多种方式

可以通过在application.properties或application.yml文件中设置 Feign 客户端接口的日志级别来控制日志输出。

2025-08-07 21:42:14 156

原创 springboot利用Redisson 实现缓存与数据库双写不一致问题

使用了 Redisson 来操作 Redis 分布式锁,主要功能是从缓存和数据库中获取商品信息,以下是针对并发时更新缓存和数据库带来不一致问题的解决方案。

2025-08-07 21:41:30 97

原创 springboot+druid预防连接断开​​、​​断开后自动恢复​​

Autowired// 手动执行轻量级校验(如查询 1)if (!注意:手动校验会增加耗时,仅建议在关键业务中使用。防止连接断开的核心是通过test-while-idle 校验 + 合理控制空闲生命周期,确保连接有效性;断开后的自动恢复依赖 Druid 后台线程的失效连接移除和新连接补充机制;应用层通过重试或手动校验作为补充。最终通过监控(Druid 控制台、ELK)持续观察连接池状态,动态调整参数,确保系统高可用。

2025-08-06 21:39:37 754

原创 Spring Boot 中使用 Druid 连接池进行极致优化

Druid 的极致优化需结合业务场景(高并发/低延迟)、数据库特性(连接限制/QPS 上限)和监控数据动态调整。基础参数调优(容量、生命周期)→ 2. 监控体系搭建(SQL 统计、连接状态)→ 3. 安全增强(防注入、防泄漏)→ 4. 持续迭代(基于监控数据优化)。最终目标是在连接利用率(避免空闲/耗尽)、性能稳定性(减少连接创建开销)和安全性(防攻击/泄漏)之间找到平衡。

2025-08-06 21:37:03 2270

原创 SpringBoot实现RPC调用的本地代理模式

/ RpcService.java - 服务提供者注解@ComponentClass<?// RpcReference.java - 服务消费者注解这个实现虽然相对简单,但完整展现了RPC框架的核心思想。在实际项目中,建议使用成熟的RPC框架如Dubbo或Spring Cloud,但理解底层原理对我们选择和优化技术方案很有价值。

2025-08-06 21:36:31 317

原创 一天一道Java面试题,坚持三个月,菜鸟变大佬(线程池篇)

阅读ThreadPoolExecutor源码(重点关注execute()方法)使用Arthas等工具进行运行时分析在生产环境配置合理的监控告警参考阿里《Java开发手册》线程池规约。

2025-08-05 21:01:15 864

原创 一天一道Java面试题,坚持三个月,菜鸟变大佬(并发篇)

多个线程同时访问共享资源时,可能导致数据不一致或逻辑错误。例如在银行转账场景中,若两个线程同时对同一账户进行扣款和入账操作,且未进行同步处理,就可能出现账户金额异常的情况。这是因为线程在读取和修改数据时,可能会受到其他线程的干扰。Java 中的高并发问题复杂多样,需要开发者深入理解并发编程的原理,并结合实际场景灵活运用各种技术和工具。在解决高并发问题时,应从线程安全、性能优化、死锁避免等多个方面综合考虑。同时,多进行代码实践和性能测试,不断积累经验,才能在面对高并发挑战时游刃有余。

2025-08-05 20:56:03 670

原创 一天一道Java面试题,坚持三个月,菜鸟变大佬(JVM篇)

Eden与Survivor区占比。调整新生代对象存活时间。最大GC停顿时间目标。

2025-08-05 20:55:28 382

原创 MySQL 8.0 SQL优化黑科技,面试官都不一定知道!

提到SQL优化,大多数人想到的还是那些经典套路:建索引、避免全表扫描、优化JOIN顺序…这些确实是基础,但如果你还停留在MySQL 5.7时代的优化思维,那就out了。MySQL 8.0已经发布好几年了,带来了大量革命性的新特性。然而令人意外的是,很多开发者(甚至包括一些面试官)对这些新功能还不够了解,依然在用老思路解决新问题。今天我们就来聊聊MySQL 8.0那些鲜为人知的优化黑科技。这些特性不仅能让你的SQL性能飞起,更重要的是,当你在面试中展示这些技巧时,很可能连面试官都会被惊艳到。

2025-08-04 21:50:04 901

原创 MySQL什么是分布式数据库?

分布式数据库是一种将数据存储在多个物理位置的数据库系统。这些位置可能分布在不同的服务器、数据中心甚至地理位置。分布式数据库系统允许数据的存储、处理和访问分布在多个节点上,以提高数据的可用性、可靠性、可扩展性和性能。

2025-08-04 21:48:26 753

原创 一次奇妙的线上的mysql调优分享

1.不同环境的差别线上已经优化成和本地的速度差不多了。那说明本地的mysql自动帮我们优化了。本地的mysql版本是8.0,线上的mysql版本是5.7,mysql优化器应该检测到子查询后的条件可以直接放到里面,会节约查询时间,然后就对查询本身优化了,而mysql5.7没优化就导致查询慢了。2.对sql优化不熟练 这算是个很常见的sql了,虽然是拿其他同事的sql拿来用,但是没仔细检查,很简单的优化点忘了。

2025-08-04 21:47:54 765

原创 Spring Boot 数据脱敏实现

通过以上步骤,在Spring Boot 项目中实现了数据脱敏功能。使用自定义注解和处理器并结合策略模式,可以灵活地对敏感信息进行脱敏处理。

2025-08-01 21:07:19 283

原创 SpringBoot实战:七种统计方法耗时的实现方式

这种方法结合了自定义注解和AOP,可以更精确地控制哪些方法需要进行耗时统计。@Aspect@ComponentSystem.out.println("方法[" + methodDesc + "]耗时:" + stopWatch.getTotalTimeMillis() + "ms");@Service@TimeLog("查询商品详情")// 业务逻辑优点:更精细的控制,注解可携带更多信息,便于定制缺点:需要手动在方法上添加注解。

2025-08-01 21:06:45 765

原创 Spring Boot 的 20个实用技巧

每次启动 Spring Boot 应用,看到默认的启动 Banner 是不是觉得有点单调?其实,我们可以自定义这个 Banner,让启动界面充满个性。只需在src/main/resources目录下创建一个banner.txt文件,在里面写入你想要展示的内容,比如公司 logo、项目名称、版本号等。____ _ _ _这样,下次启动应用时,就能看到自定义的 Banner。

2025-08-01 21:06:14 706

空空如也

空空如也

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

TA关注的人

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