自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DNS域名解析过程 + 安全 / 性能优化方向

DNS作为互联网的基础服务之一,直接影响用户访问网站的速度与稳定性。研究表明,网页加载延迟一秒可能导致用户跳出率上升10.9%(Google Research),凸显了优化DNS性能的重要性。然而,许多网站仍在使用公共DNS服务,这类服务虽免费或低价,但在性能、稳定性和隐私方面存在局限性。本文将探讨公共DNS对网站加载速度的影响,并提供优化方案,包括专用DNS服务器、自托管解决方案及加密协议(如DoH和DoT),帮助站长和企业提升网站性能,优化用户体验,确保网络访问的安全与稳定。

2025-04-03 20:02:39 829

原创 Server-Sent Events(SSE)单向消息推送实现(SpringBoot + Vue)

主要介绍了SSE(Server-Sent Events)的概念和应用。SSE是一种允许服务器向客户端单向推送数据的技术,适用于实时数据更新场景。文章详细阐述了SSE与WebSocket的区别,并提供了SSE在文件下载功能中的具体代码实现,包括建立SSE连接、异步下载处理以及如何通过Redis实现消息的广播和精准投递。

2024-11-29 16:55:29 1617 1

原创 UTF-8与UTF-8MB4编码的异同与应用场景

文章里讲了两种现在挺流行的编码方式:UTF-8和UTF-8MB4。UTF-8就像个万能翻译,能处理世界上几乎所有的字符,而且它很节省空间,对英文来说特别友好。但随着表情符号越来越火,原来的UTF-8有点不够用了,所以就有了UTF-8MB4,它能处理更多的字符,比如那些花里胡哨的表情。虽然用UTF-8MB4可能会让存储和传输变慢一点,但它能确保我们在网上看到的每个表情都是完整的。

2024-09-13 11:02:40 1280

原创 脱离八股文,真实开发中的延时处理需求实现思路(超时订单处理为例)

很多时候,咱们看到的文章或者面试题,好多都是为技术而技术。很多人可能连自己说的方案能不能行都不知道,就敢拿出来说。今天咱们就来点实在的。咱们不聊那些高大上的理论,而是聊聊在实际工作中,这些延时处理需求到底是怎么搞定的。

2024-09-10 11:49:43 891

原创 WebSocket可拓展业务组件搭建,无侵入实现WebSocket通信信息自定义业务消费

本文介绍了一种可复用的WebSocket组件,旨在通过设计模式和解耦策略实现项目中对WebSocket通信的高效重用,并支持基于业务标识的消息自定义消费逻辑扩展。该组件主要解决了C端产品中实时交互的需求,如聊天室和多人实时游戏等场景

2024-08-19 20:46:59 996 4

原创 基于Frp搭建Window-Linux内网穿透完整流程

本文介绍了内网穿透的基本概念,以及如何使用Frp(一种流行的内网穿透工具)在Windows和Linux系统之间建立内网穿透。内网穿透允许外部网络通过特定的端口映射访问内部网络中的服务,这对于没有公网IP地址的内网服务尤为重要。文章首先解释了内网穿透的基本原理和应用场景,然后详细介绍了使用Frp实现内网穿透的步骤,包括下载、安装、配置服务端和客户端,以及最终的效果测试。通过这篇文章,读者可以了解到如何利用Frp工具实现跨平台的内网服务暴露,使得内网服务能够被外部网络访问。

2024-07-30 14:35:45 1070

原创 记录系统盘刷满导致的ERROR 1006 : Can‘t create database ‘xxx‘ 解决过程

基于Docker搭建的MySQL服务在创建数据库时遇到“Can't create database”错误,通过排查发现是由于磁盘空间不足导致的。进一步分析发现,大量日志文件占用了磁盘空间,这些日志文件来自于一个已经不再需要的演示项目。清理这些日志文件并停止相关进程后,重启MySQL容器解决了问题。

2024-07-24 01:01:12 503

原创 MySQL日志机制【undo log、redo log、binlog 】

文中讨论了更新语句执行过程中涉及到的undo log、redo log和binlog三种关键日志,以及它们在数据恢复、一致性和事务管理中的作用。最后,文章解释了两阶段提交的概念及其在保障redo log和binlog日志一致性中的重要性。

2024-05-07 15:11:52 995

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

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

2024-04-12 11:47:59 1183

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

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

2024-04-09 15:58:33 1441

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

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

2024-04-08 21:22:49 1660

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

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

2024-04-08 09:59:17 1897

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

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

2024-04-02 23:07:25 1045 2

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

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

2024-03-27 15:17:44 1842

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

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

2024-03-22 15:39:44 1671 2

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

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

2024-03-20 16:48:17 2006

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

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

2024-03-20 10:50:27 1864

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

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

2024-03-19 22:35:03 1149

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

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

2024-03-19 14:01:58 989

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

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

2024-03-12 11:52:43 825

原创 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 1252

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

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

2024-03-05 22:39:07 902

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

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

2024-03-04 16:11:12 1135

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

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

2024-03-01 10:47:53 763

原创 理解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 1437

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

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

2024-02-29 15:43:37 1222

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

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

2024-02-28 21:14:34 2460

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

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

2024-02-23 13:36:39 960

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

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

2024-02-20 19:42:17 1477

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

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

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

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

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

2024-02-05 17:44:32 1317

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

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

2024-02-05 17:33:46 1098

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

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

2024-02-02 14:35:00 1035

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

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

2024-02-01 17:53:47 1574

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

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

2024-01-28 19:46:50 1132

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

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

2024-01-11 11:40:11 1216

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

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

2024-01-10 19:23:38 1424 1

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

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

2024-01-09 17:17:42 672

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

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

2024-01-08 17:37:01 999

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

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

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

空空如也

空空如也

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

TA关注的人

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