自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL锁机制解析 + 行级锁加锁过程中锁退化剖析

本文将深入探讨MySQL中的锁分类概念及介绍行级锁的加锁细节,主要分为全局锁、表级锁和行级锁三类。包括对唯一索引和非唯一索引的等值查询、范围查询等情况下的加锁规则,以及没有加索引的查询的影响。最后,文章强调了在执行具有加锁性质的查询时,务必检查查询是否走了索引,以避免全表扫描导致的性能问题。

2024-04-12 11:47:59 730

原创 MySQL存储四连问:NULL 值会占用空间吗?varchar(n) 中 n 最大取值为多少?行溢出后,MySQL 是怎么处理的?怎么知道 varchar(n) 实际占用数据的大小?

本文探讨MySQL数据存储的细节,从表空间结构到行格式,涵盖了如何优化数据存储以及行溢出的处理方式。我们将学习MySQL中NULL值的占用、varchar(n)数据大小的确定方式,以及行溢出后MySQL的处理方法。

2024-04-09 15:58:33 602

原创 SQL执行流程图文分析:从连接到执行的全貌

本文探讨 MySQL 执行一条 SQL 查询语句的详细流程,从连接器开始,逐步介绍了查询缓存、解析 SQL、执行计划优化以及执行器等各个功能模块的作用。同时,还解释了 MySQL 的内部架构,包括 Server 层和存储引擎层,并讨论了短连接与长连接、索引下推等相关概念。通过本文,读者能够全面了解 MySQL 在执行 SQL 查询时的内部工作原理,以及如何优化查询性能。

2024-04-08 21:22:49 1176

原创 IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

本文探讨计算机网络中四个关键协议:DHCP(动态主机配置协议)、NAT(网络地址转换)、ICMP(互联网控制报文协议)和IGMP(因特网组管理协议)。通过本文,读者将对这四个关键网络协议有一个全面的了解,理解它们在计算机网络中的作用和重要性,以及它们如何共同工作以保证网络的高效和稳定运行。

2024-04-08 09:59:17 934

原创 使用TCP协议就一定零丢包了吗?

本文介绍了 TCP 协议的基本特性和数据包发送流程,包括三次握手建立连接过程以及数据包在网络中的传输路径。随后,分析导致数据包丢失的几种常见情况,包括建立连接时丢包、流量控制丢包、网卡丢包、接收缓冲区丢包等。对每种情况进行了详细解释,并给出了可能的解决方案。还强调了 TCP 协议只保证传输层的消息可靠性,并不保证应用层的消息可靠性,因此在实际应用中,需要应用层自行实现消息的可靠性保证机制。最后,通过引入第三方服务器来解决消息可靠性保证问题,并分析了引入服务器的优势,包括减少资源消耗、增强安

2024-04-02 23:07:25 738

原创 探究QUIC协议:基于UDP的可靠传输之路

本文将探讨基于UDP实现可靠传输的需求背景,首先,文章将分析TCP协议存在的四个主要缺陷,即升级困难、建立连接延迟、队头阻塞和网络迁移成本。随后,文章将详细介绍QUIC协议如何通过创新的设计解决了这些问题,重点关注其实现可靠传输的机制以及对TCP缺陷的针对性应对措施。最后,文章将总结QUIC协议的优势,并展望其在网络通信领域的应用前景。

2024-03-27 15:17:44 1317

原创 深度解析ThreadLocal:底层原理、数据隔离与内存泄漏解决

本文从面试经历出发,介绍了 ThreadLocal 的底层原理以及实现机制。通过分析 ThreadLocal 的源码实现和数据隔离原理,解释了每个线程如何维护自己的 ThreadLocalMap,以实现线程间数据隔离和安全访问。同时,探讨了 ThreadLocalMap 的初始化和哈希冲突解决策略,以及可能存在的内存泄漏问题和解决方法。最后,结合实际场景展示了 ThreadLocal 的使用场景和优势。

2024-03-22 15:39:44 1258 1

原创 TCP协议中的传输控制机制图文详解「重传机制」&「流量控制」&「拥塞控制」

本文将深入探讨TCP协议中的传输控制机制,包括TCP重传机制、流量控制、窗口管理等多个重要概念。我们将分析超时重传、快速重传、SACK 方法、TCP拥塞处理等内容,帮助读者全面理解TCP协议在网络通信中如何进行数据传输控制以保证数据的可靠性和有效性,并解释拥塞控制与流量控制的区别与联系。同时,我们还将介绍常见的拥塞控制算法,包括慢开始算法、拥塞避免算法、拥塞发生算法和快速恢复算法,帮助读者更好地理解TCP协议在面对网络拥塞时的应对策略和算法原理。

2024-03-20 16:48:17 1266

原创 解析服务器出现大量 TIME_WAIT 和 CLOSE_WAIT 状态的原因及排查方法

本文详细解释了服务器出现大量 TIME_WAIT 和 CLOSE_WAIT 状态的原因,并从 HTTP 没有使用长连接、HTTP 长连接超时、HTTP 长连接的请求数量达到上限以及服务端代码问题等方面进行了分析。针对性地介绍了解决这些状态问题的方法和排查思路,帮助读者更好地理解和处理服务器连接状态异常的情况。

2024-03-20 10:50:27 1061

原创 TCP连接中的握手和挥手过程中出现丢失会怎样?

本文总结了TCP连接中三次握手和四次挥手过程中出现丢失的情况下可能发生的影响。具体包括第一次、第二次和第三次握手丢失时的处理方式,以及第一次、第二次、第三次和第四次挥手丢失时可能导致的连接状态异常和超时重传机制。

2024-03-19 22:35:03 918

原创 相比于 HTTP 协议,WebSocket协议的必要性体现在哪里?

本文将探讨解决服务器主动推送需求的三种方式:HTTP不断轮询、长轮询和WebSocket。通过对每种方式的原理、特点和适用场景进行分析,帮助读者了解如何实现服务器主动推送,并选择适合自身需求的推送方式。

2024-03-19 14:01:58 887

原创 HTTP/1.1 协议优化方案探讨

本文探讨如何在 HTTP/1.1 协议下实现优化,包括避免发送重复 HTTP 请求、减少 HTTP 请求次数、减少 HTTP 响应的数据大小等方面。通过深入了解如何利用强制缓存、协商缓存、合并请求、延迟发送请求等技术手段,以及压缩资源的方式来提高网络传输效率,我们可以更好地利用 HTTP/1.1 协议,提升网页加载速度和用户体验。

2024-03-12 11:52:43 725

原创 HTTP/2、HTTP/3对HTTP/1.1的性能改进和优化

本文介绍了HTTP/1.1、HTTP/2和HTTP/3这三个HTTP协议版本在性能方面的改进和优化。HTTP/1.1相对于HTTP/1.0在性能上进行了一系列的增强,包括头部压缩、二进制格式和并发传输等。HTTP/2进一步优化了性能,引入了服务器主动推送资源和解决了HTTP/2队头阻塞的问题。而HTTP/3基于UDP协议,通过引入QUIC协议解决了队头阻塞问题,并提供了更快的连接建立和连接迁移的功能。然而,HTTP/3在普及过程中仍面临着一些问题。

2024-03-11 22:16:31 838

原创 浏览器发出一个请求到收到响应步骤详解

本文将探讨网络请求的全过程,从浏览器生成HTTP消息到路由表规则锁定IP地址,再到MAC头部添加以及数据的物理传输,揭秘网络世界的传输之路。通过对这一过程的深入理解,我们可以更好地认识互联网传输的本质,以及其中涉及到的技术与原理。

2024-03-05 22:39:07 622

原创 网络编程中的响应之道:探索 Reactor 和 Proactor 模式

本文将详细介绍 Reactor 和 Proactor 模式在网络编程中的应用。首先解释了 Reactor 模式的原理和特点,包括单 Reactor 单进程/线程和单 Reactor 多线程/进程的方案。然后介绍了 Proactor 模式,解释了其与 Reactor 模式的区别,以及异步IO的特点。最后对两种模式的应用场景进行了总结,并给出了一些常见的开源软件的应用案例。

2024-03-04 16:11:12 1077

原创 现学现卖,ElasticSearch的开箱即用!工具类代码已准备好

本文旨在帮助读者快速入门 Elasticsearch,从基本概念到实际应用,我们将深入探讨 Elasticsearch 的核心功能和用法,并提供丰富的代码样例来帮助读者快速上手。

2024-03-01 10:47:53 625

原创 理解TCP Socket编程模型和I/O多路复用技术

本文深入探讨了TCP Socket编程模型中的基本模型、多进程模型、多线程模型以及I/O多路复用模型,并着重介绍了select/poll/epoll在多路复用中的应用。通过比较select、poll和epoll的工作机制,阐述了epoll相对于select和poll的优势,特别是在高并发场景下的性能表现。此外,还详细介绍了epoll的边缘触发和水平触发模式的区别,以及它们在实际应用中的适用场景和注意事项。通过本文的阐述,读者可以更好地理解TCP Socket编程模型及I/O多路复用技术,为高效的网络编程提供

2024-02-29 19:52:00 1238

原创 深度解析零拷贝技术优化文件传输性能

本文系统性介绍了零拷贝技术在文件传输中的应用,围绕优化传统文件传输过程中的性能瓶颈展开,并详细介绍了零拷贝技术的定义、优势、优化点和实际应用,对相关技术实现和项目案例进行了深入的探讨,为读者提供了全面的认识和应用指导。

2024-02-29 15:43:37 1010

原创 如何理解操作系统中的设备控制与设备驱动程序?

本文将深入探讨操作系统中设备控制器、设备驱动程序的作用及相互配合的关系,解析设备控制与设备驱动的关键作用,同时探讨设备控制器寄存器、数据缓冲区的运作原理,从而更好地理解操作系统中设备控制与设备驱动程序的工作机制。

2024-02-28 21:14:34 973

原创 《多线程并发控制:选择正确的锁策略》:互斥锁、自旋锁、读写锁、乐观锁、悲观锁

本文围绕多线程并发控制中的锁策略展开讨论,详细介绍了互斥锁、自旋锁、读写锁、乐观锁以及它们的选择和使用场景。提出在确定被锁住代码执行时间很短时选择自旋锁,否则使用互斥锁;阐述了自旋锁在单核 CPU 和多核系统下的适用情况;深入解析了读写锁工作原理以及读优先锁、写优先锁、公平读写锁的特点和适用场景;最后说明了乐观锁适用于低冲突概率下的场景,但随着冲突概率上升,不适合使用乐观锁的原因。

2024-02-23 13:36:39 648

原创 探索 LRU 算法的缺陷与解决方案

本文将探讨缓存系统中常用的淘汰算法之一——LRU算法存在的一些缺陷,并提出针对这些缺陷的优化方案。具体来说,我们将重点分析预读机制可能引发的预读失效问题和缓存污染问题,并探讨如何通过筛选预读数据和引入其他淘汰策略如LFU算法或ARC算法来解决这些问题。通过本文的阐述,读者将了解到如何更好地设计和优化缓存系统,提高系统性能和效率。

2024-02-20 19:42:17 878

原创 Java安全实现微信消息提醒女友喝水(自动化消息定时 + 间隔重复发送)

本文介绍如何使用Java的AWT库实现自动化的微信消息提醒女友喝水功能,旨在帮助用户实现定时、间隔重复发送消息的自动化操作。

2024-02-20 11:31:14 454 2

原创 第三方万年历接口在公司中的应用实践

探索如何利用先进的万年历数据获取外部接口,以揭示时间的神秘面纱。通过这些接口,我们可以准确地获取指定日期的节假日及万年历信息,甚至能进一步获取指定月份的具体类型的节假日及万年历信息。

2024-02-05 17:44:32 1092

原创 解密内存管理:从分配到保护,揭秘系统内存的工作原理

探讨系统内存管理的核心概念和关键过程。首先,详细介绍内存分配的过程,解释应用程序如何申请虚拟内存以及在虚拟内存未映射到物理内存时发生的缺页中断。接下来,探讨可回收的内存情况。了解内核是如何进行直接内存回收和后台内存回收的,以确保系统能及时回收空闲的物理内存。然后,讨论优化回收内存所带来的性能影响。了解一些优化策略,包括内存池管理和延迟分配等方法,以提高系统的内存管理效率。最后,讨论如何保护进程不被OOM(Out of Memory)杀掉。学习防止OOM发生的技巧,包括合理设置内存限制和优化应用程

2024-02-05 17:33:46 950

原创 解密多核CPU伪共享问题:揭示多核CPU下性能差异的真相

本文基于图文的模式详细讲解多核CPU下导致的伪共享问题的出现原因及其三大解决方案,分别为对其填充、JDK8的@Contended注解、Disruptor 字节填充 + 继承。

2024-02-02 14:35:00 679

原创 多核CPU 缓存一致性(总线嗅探、MESI协议)

本文介绍了MESI协议作为一种常见的缓存一致性协议,它通过对缓存行状态的管理和操作的同步控制,实现了事务的串行化执行。MESI协议使用四种状态来跟踪缓存行的状态,包括Modified、Exclusive、Shared和Invalid。通过正确的状态转换和处理策略,MESI协议保证了共享数据在不同处理器之间的一致性,并有效限制了对共享数据的并发访问,避免了数据的脏读和不一致问题。多核CPU缓存一致性技术是提高多核系统性能和可靠性的重要手段,深入理解和应用该技术对于开发高性能并发应用具有重要意义。

2024-02-01 17:53:47 883

原创 MySQL8 窗口函数 →_→ 专治GROUP BY后组内元素

使用GROUP BY对数据进行分组后,让你计算组内元素的数值占整个组的比例,让你找组内前三大的元素等,你咋获取呀?

2024-01-28 19:46:50 773

原创 加速你的数据库:公司中SQL优化的八大绝招

SQL优化这个问题也是老生常谈了,很多都还是在八股文中了解到,那么公司里的SQL都是咋优化的呢?和八股文一样吗?下面,我将与大家分享我在公司里学到的SQL优化知识。SQL优化是提高数据库性能和减少资源消耗的重要一环,在我工作的过程中,我深刻体会到了SQL优化的重要性,并积累了一些实用的技巧和经验,我希望通过这篇博客,将这些知识分享给大家。

2024-01-11 11:40:11 989

原创 微服务下多模块拆分,公用类调用与模块隔离性怎么兼得呢

在一个微服务项目中,为了追求低耦合,会根据业务板块对主系统进行切分为一个个子模块,模块间相互隔离,但是这样子就会导致一个问题:对于一些在多个子模块中都适用的配置类、工具类、封装类等都需要拷贝冗余到各个模块中,这样子显然是不太合理的,那么想要鱼和熊掌兼得,我们可以独立创建一个共用子模块,将这一类共用的数据类都给放到这里来,然后将该模块打包为jar包在各个子模块pom文件中引入,这样子就可以实现一份共用配置在多个子模块中使用,并保证了子模块间的隔离性。下面让我们来看一下相关的具体配置操作

2024-01-10 19:23:38 1166

原创 HttpClient调用外部接口业务别忘了超时配置!公司工具类打包好啦

在工作中,往往会遇到需要对接外部接口的业务需求,根据接口文档确定请求IP以及相关的参数数据需求后,通过HttpClient进行第三方外部接口的调用。在这种业务中,也要考虑好请求超时导致的接口报错的处理。为什么呢?就我公司业务而言,我们这边的视频或者说融合通讯,因为厂商多,设备型号杂,经常都有调用不通的情况。今天正常的视频可能明天就不行了,如果后端这里不处理超时,前端如果无法拿到设备信息或者设备ID,页面的报错信息可能反应的就是接口报错了。这显然是不合情理的,为此,我们可以考虑加一个请求超时的参数(在配置文件

2024-01-09 17:17:42 413

原创 注解式参数校验@Valid,拒绝if-else炼狱

在软件开发中,与客户进行数据的交互是比较频繁的数据采集方式,而为了确保数据的正确落库,数据校验的部分必不可少。参数校验具体指的是对输入数据的大小、类型、正则匹配等对数据本身属性的校验,这一块的校验通常是在前端进行第一轮校验,确保参数具备一定逻辑正确性才将其打包至后端处理,而为了进一步增强安全性,也同样需要在后端板块进行二次校验。而对于此类校验,最常见也是最臃肿的处理方案就是if-else炼狱,如果说参数个数较少,那么无可厚非,但如果包含了七八个参数,那么这就很拉跨了,下面介绍一种基于注解的校验方案,进一步优

2024-01-08 17:37:01 944

原创 HTTPS安全防窃听、防冒充、防篡改三大机制原理

本文讲述了HTTPS的三大机制原理,即防窃听、防冒充和防篡改。HTTPS采用了加密算法确保数据不被窃听,并通过数字证书认证确保访问的网站真实可信;同时将内容进行摘要计算和数字签名,防止篡改攻击。

2023-12-03 16:05:33 1080 1

原创 软件开发中对图片的加工处理的一些个人思考和总结

软件开发中对图片的加工处理的一些个人思考和总结

2023-11-24 09:16:26 206

原创 【Thumbnailator】图片压缩、水印、格式修改一网打尽

讲解一下后端实现图片加工的工具库——Thumbnailator是一款高性能的java缩略图类库。 支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。

2023-11-24 09:13:17 365

原创 Hutool 实现敏感信息展示脱敏及其反脱敏

业务中如果出现敏感数据展示,数据脱敏是一种重要的安全措施。数据脱敏是指在处理和存储敏感信息时,将这些信息中的敏感部分替换为无意义的数据,以保护用户的隐私和数据安全。本文基于Hutool工具类来实现一键式快速数据脱敏操作

2023-11-16 08:54:01 971

原创 算不上最全,但都是必备——Redis这些不会不行啊

深入解析大中小厂常问的Redis面试题,揭秘其背后的奥秘!这篇文章涵盖了Redis的核心概念、数据结构和常用命令,让你在面试中信心满满。通过剖析实际应用场景和解决方案,帮助你深入理解Redis

2023-11-15 09:04:03 524

原创 算不上最全,但都是必备——Spring这些不会不行啊

揭示Spring面试的核心,描绘大中小厂常问的问题!这篇文章涵盖了丰富多样的Spring面试题,包括IOC、AOP、Spring Boot等热门话题。从原理到实践,深入解析这些问题,帮助你全面掌握关键

2023-11-15 08:40:43 266

原创 算不上最全,但都是必备——MySQL这些不会不行啊

探秘Mysql面试话题,揭晓大中小厂的常问问题!这篇文章涵盖了丰富多样的Mysql面试题,涉及性能优化、索引优化、数据备份与恢复等方面。通过深入剖析这些问题,带你了解面试的重点,提升自己的应对能力。

2023-11-15 08:27:40 331

原创 MQ四大消费问题一锅端:消息不丢失 + 消息积压 + 重复消费 + 消费顺序性

本文基于MQ在消费场景下的四大常见问题进行汇总解析,结合业务需求来提供多个业务解决方案,进一步提高对于MQ的理解和业务设计能力

2023-11-14 22:12:06 926

原创 线程池参数该怎么配置?这可能是为数不多的好答案

本文参考美团的动态更新线程池参数适应业务需求框架,分析线程池参数配置的多个考虑思路,并搭配实现一个丐版动态更新线程池配置组件加深我们对其的理解

2023-11-14 22:01:38 515

空空如也

空空如也

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

TA关注的人

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