摘要: 一、概述 在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题: 线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码 阅读全文
posted @ 2022-12-16 17:39 夏尔_717 阅读(506) 评论(0) 推荐(0)
摘要: 一、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 1.1 数据结构分类 数据结构可按照逻辑结构和存储结构划分 1.1.1 逻辑结构 系统的 阅读全文
posted @ 2022-09-09 18:23 夏尔_717 阅读(2493) 评论(0) 推荐(1)
摘要: 一、概述 java的java.util.concurrent包除了提供底层锁、并发集合外,还提供了一组原子操作的封装类,它们位于java.util.concurrent.atomic包。 Atomic类是通过无锁(lock-free)的方式实现的线程安全(thread-safe)访问。 二、原子类底 阅读全文
posted @ 2022-06-20 22:55 夏尔_717 阅读(329) 评论(0) 推荐(0)
摘要: 一、概述 Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList 阅读全文
posted @ 2022-05-08 18:53 夏尔_717 阅读(150) 评论(0) 推荐(0)
摘要: 一、概述 在MyBatis中通过拦截器实现SQL参数加密/结果集解密是数据安全的常见场景,核心是拦截参数处理环节(加密入参)和结果集处理环节(解密出参)。 适配Spring Boot3 + MyBatis环境。 核心思路 拦截点 作用 拦截接口 拦截方法 参数加密 执行SQL前加密敏感参数 Para 阅读全文
posted @ 2025-12-08 21:57 夏尔_717 阅读(9) 评论(0) 推荐(0)
摘要: 一、概述 在Mybatis开发体系中,“过滤器”是开发者对Mybatis拦截器(Plugin)的通俗称呼,它是Mybatis提供的核心扩展机制——无需修改框架源码,就能对SQL执行全流程进行增强,比如分页插件、通用字段自动填充、数据加解密等功能,底层均依赖这一机制。本文将从底层技术原理、核心源码解析 阅读全文
posted @ 2025-12-08 21:18 夏尔_717 阅读(8) 评论(0) 推荐(0)
摘要: 一、概述 在实际开发中,我们常常需要在不侵入业务代码的前提下,对SQL执行过程进行增强处理,比如SQL耗时统计、参数加密、结果集脱敏、数据权限过滤等场景。MyBatis提供的自定义拦截器(Plugin)机制,正是为这类需求而生。 MyBatis拦截器基于责任链模式和动态代理实现,允许开发者在SQL执 阅读全文
posted @ 2025-12-07 22:19 夏尔_717 阅读(26) 评论(0) 推荐(0)
摘要: 一、概述 WebMvcConfigurer是SpringMVC提供的一个配置回调接口,它定义了一系列用于自定义SpringMVC行为的方法,只需创建一个配置类实现该接口,并按需重写方法,即可轻松实现URL映射、拦截器注册、跨域配置等功能,无需编写繁琐的XML配置。 关键特性: 无侵入性:仅需实现接口 阅读全文
posted @ 2025-12-04 14:45 夏尔_717 阅读(10) 评论(0) 推荐(0)
摘要: 一、概述 在分布式系统架构中,RocketMQ作为主流消息中间件,承担着业务解耦、流量削峰、异步通信的核心职责。但消息积压是其运行过程中高频出现的问题,一旦发生,轻则导致业务响应延迟(如订单状态同步慢、通知推送超时),重则引发Broker磁盘溢出、核心服务中断,直接影响用户体验与系统稳定性。 二、线 阅读全文
posted @ 2025-12-03 22:27 夏尔_717 阅读(16) 评论(0) 推荐(0)
摘要: 一、概述 在现代应用开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。然而,在网络传输或者数据存储的过程中,如何有效地压缩和解压JSON数据,是很多开发者需要解决的问题。 部分数据如下所示: { "33828": { "code": "3 阅读全文
posted @ 2025-12-03 17:38 夏尔_717 阅读(46) 评论(0) 推荐(0)
摘要: 一、概述 Feign作为Spring Cloud中声明式HTTP客户端,首次调用慢是高频问题,核心成因包括懒加载初始化、连接池未预热、DNS解析耗时、Hystrix/Sentinel初始化等,先明确首次调用慢的核心环节,避免盲目优化: 慢调用环节 具体原因 耗时范围 Feign客户端初始化 Feig 阅读全文
posted @ 2025-12-01 15:39 夏尔_717 阅读(31) 评论(0) 推荐(0)
摘要: 一、内存淘汰机制 内存淘汰机制是保障热数据的基础,核心通过两个关键配置实现:一是用maxmemory限制内存上限,二是用maxmemory-policy定义淘汰规则,确保优先淘汰冷数据。 1.1 开启内存限制 需先设置Redis最大可用内存,避免冷数据无限制堆积导致系统资源耗尽。 # redis.c 阅读全文
posted @ 2025-11-29 17:09 夏尔_717 阅读(8) 评论(0) 推荐(0)
摘要: 一、Profiling局限性 在MySQL性能诊断领域,Profiling工具曾因简单易用成为开发者排查SQL耗时的常用选择,但随着MySQL版本迭代(5.7+起官方明确标记为弃用),其功能局限和性能损耗问题逐渐凸显。而Performance Schema(简称PS)作为MySQL原生的高性能监控框 阅读全文
posted @ 2025-11-27 22:06 夏尔_717 阅读(21) 评论(0) 推荐(0)
摘要: 一、核心指标 调优之前首先我们要知道怎样才算是“优”,不能笼统的说我的程序性能很好,所以就需要有一个具体的指标来衡量性能情况,而在JVM里面衡量性能两个指标分别“吞吐量”和“停顿时间”。 吞吐量:程序运行过程中执行两种任务,分别是执行业务代码和进行垃圾回收,吞吐量大意就是说程序运行业务代码的时间越多 阅读全文
posted @ 2025-11-20 12:46 夏尔_717 阅读(24) 评论(0) 推荐(0)
摘要: 一、概述 group by的核心作用是分类统计:通过指定分组列将原始数据划分为多个逻辑组,再结合sum、count、min/max等聚合函数,计算每组的统计结果(如按用户分组统计订单总额、按日期分组统计访问量)。 其执行效率的关键瓶颈在于:无索引支持时,MySQL需经历「扫描全表→创建临时表存储中间 阅读全文
posted @ 2025-11-19 14:29 夏尔_717 阅读(22) 评论(0) 推荐(0)
摘要: 一、概述 在Java开发中,我们常听说“Java是解释执行的”,但实际运行时却能感受到接近原生代码的性能。这背后的核心功臣,正是JVM中的JIT(Just-In-Time)即时编译器。它打破了“解释执行”的性能瓶颈,通过动态编译将热点代码转化为原生机器码,让Java实现了“一次编写,到处运行”与高性 阅读全文
posted @ 2025-11-18 23:26 夏尔_717 阅读(24) 评论(0) 推荐(0)
摘要: 一、概述 1.1 基本定义 负载均衡通过引入调度机制,将单个服务器的负载分散到多台服务器节点,确保每台后端服务器的性能充分发挥,避免单点过载,最终实现集群整体性能最优。对于Web应用而言,它能有效解决高并发场景下的服务瓶颈,同时提升系统的容灾能力。 1.2 负载均衡核心优势 高并发支持:可轻松处理数 阅读全文
posted @ 2025-11-18 23:25 夏尔_717 阅读(19) 评论(0) 推荐(0)
摘要: 一、概述 Nginx日志是服务器运维与问题排查的核心支撑,能够精准记录客户端请求详情、服务响应状态、处理耗时等关键信息,为故障定位、性能优化、安全审计和流量分析提供可靠数据依据。Nginx具备灵活的日志记录机制,支持多级别配置独立日志、自定义日志格式及缓存优化等功能。 二、日志级别 Nginx日志级 阅读全文
posted @ 2025-11-18 23:22 夏尔_717 阅读(124) 评论(0) 推荐(0)
摘要: 一、概述 1.1 MVCC的定义与价值 MVCC(Multi-Version Concurrency Control)是一种非锁定式并发控制技术,其核心目标是解决读写操作的相互阻塞问题。传统锁机制中,读操作加共享锁、写操作加排他锁,导致读写互斥;而MVCC通过维护数据的多个历史版本,让快照读(非锁定 阅读全文
posted @ 2025-11-15 18:37 夏尔_717 阅读(8) 评论(0) 推荐(0)
摘要: 一、概述 超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 1.1 发展历史 起源:HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。 标 阅读全文
posted @ 2025-11-05 20:24 夏尔_717 阅读(25) 评论(0) 推荐(0)
摘要: 一、概述 order by的核心功能,是按照指定的单个或多个字段,对select查询返回的结果集进行升序(asc,默认)或降序(desc)排列,以满足业务对数据有序性的需求。但要判断order by的实际执行效率,最直接的工具是explain分析——通过输出结果中“Extra”列的两个关键标识,可快 阅读全文
posted @ 2025-11-03 21:18 夏尔_717 阅读(32) 评论(0) 推荐(0)
摘要: 一、什么是反向代理? 要理解“反向代理”,我们先从更熟悉的“正向代理”对比入手,两者的核心差异在于代理服务器的“服务对象”不同。 1.1 正向代理 正向代理的典型场景是“FQ”或“内网访问外网”。比如你想访问某个境外网站,直接访问会被限制,此时你会连接一个“代理服务器”,由它帮你向目标网站发起请求, 阅读全文
posted @ 2025-11-03 14:08 夏尔_717 阅读(143) 评论(0) 推荐(0)
摘要: 一、概述 show status是MySQL内置的核心诊断命令,用于实时查看数据库服务器的运行状态指标,涵盖连接数、查询性能、缓存使用、锁等待等关键维度。这些指标如同数据库的“体检报告”,能帮助开发者快速定位性能瓶颈、优化配置参数,是日常运维和故障排查的必备工具。 二、基础语法与分类 2.1 基础语 阅读全文
posted @ 2025-11-02 13:55 夏尔_717 阅读(47) 评论(0) 推荐(0)
摘要: 一、概述 CentOS 7与CentOS 6.x最大的差异之一在于防火墙默认工具:前者采用firewalld作为默认防火墙管理工具,后者则是iptables。本文将详细讲解firewalld的日常配置、iptables的传统用法,以及两种防火墙工具的切换方法,适用于服务器端口开放、安全防护等常见场景 阅读全文
posted @ 2025-11-02 04:11 夏尔_717 阅读(80) 评论(0) 推荐(0)