- 博客(70)
- 收藏
- 关注
原创 深入理解Spring IOC
我们在最开始学习 Spring 的时候,就接触 IOC 了,IOC是Spring相对比较核心的概念,本文上面五个体系可以说是 Spring IOC 中最核心的部分,只有深入理解了IOC,在我们阅读Spring源码的时候,我们才能够更更加清晰。
2024-01-13 20:12:25
1987
12
原创 当系统闹脾气:用「因果推断」哄稳技术的心
本文围绕因果推断在系统稳定性建设中的应用展开深入探讨。首先以服务雪崩案例切入,剖析复杂系统问题中的因果关系及干预手段,引出因果推断的核心价值。随后介绍因果推断的基本概念,区分其与统计相关性的差异,并详解潜在结果框架的核心组成、挑战及解决方法。文章重点阐述了因果推断在稳定性分析中的实践应用:分析系统稳定性问题的多维度复杂性,梳理其与代码架构梳理的关联,还以 RPC 服务超时时间和重试次数优化为例,展示实验设计、数据分析及结果应用的完整流程。同时,从团队视角出发,说明因果推断在事故管理、故障预防等团队实践中的
2025-10-20 16:38:19
840
原创 JVM内存快照分析工具使用教程
通过使用 Eclipse Memory Analyzer(MAT)工具对 JVM Dump 文件进行分析,可以深入了解 Java 应用程序的内存使用情况,快速定位内存泄漏、内存溢出以及其他内存相关问题的根源。在分析过程中,需要结合不同的视图和分析方法,从多个角度对内存数据进行剖析,才能准确地找出问题所在并采取相应的解决措施。同时,在日常的 Java 开发过程中,养成定期分析内存使用情况的习惯,对于优化应用程序性能、提高系统稳定性具有重要意义。
2025-04-10 11:30:02
1259
原创 JVM垃圾回收机制深度解析:主流算法与架构设计对比
垃圾回收器的选择本质是系统约束条件下的多目标优化问题。理解各GC实现的核心机制,结合具体业务场景的SLA要求,才能做出最优架构决策。建议开发者在JDK17+环境中优先评估ZGC和Shenandoah的表现,同时关注Project Lilliput等新一代GC技术的研究进展。
2025-04-09 10:45:11
1097
原创 日志治理优化实践:一行代码省了380核
1.日志治理的重要性: 日志作为系统运行的重要记录工具,在开发和运维中不可或缺。然而,不当的日志使用方式可能会成为性能瓶颈。因此,合理的日志治理策略是保障系统稳定性的关键。2.异步日志的应用场景: 在高并发场景下,建议优先使用异步日志打印机制。通过引入缓冲队列和异步线程池,可以有效降低日志写入对主线程的影响。
2025-04-08 16:02:47
805
原创 从程序员的角度看待生成式AI的未来发展方向
随着生成式AI技术的不断进步,关于其未来发展方向的讨论也愈发激烈。作为一名Java程序员,我深刻感受到生成式AI技术的迅猛发展不仅重塑了技术格局,也为Java编程领域带来了前所未有的机遇与挑战。本篇从程序员的角度看待生成式AI的未来发展方向
2024-07-22 09:23:19
883
原创 什么是分布式事务?
分布式事务是指在分布式系统中涉及到多个数据库或多个应用程序之间的事务处理,这些数据库或应用程序可能分布在不同的物理节点上,甚至可能位于不同的地理位置。在分布式事务中,需要确保所有参与者的事务操作都能够保持一致性,即所有参与者的事务要么全部提交成功,要么全部回滚。本文探讨多种分布式事务的实现方式。
2024-05-07 10:06:03
1189
原创 深入理解Nacos
Nacos是一个基于云原生架构的动态服务发现、配置管理和服务治理平台。支持多种编程语言和多种部署方式,并且与Spring Cloud等主流的微服务框架深度集成
2024-03-28 08:15:00
5162
原创 深入分析 ApplicationContext 的 refresh()
上篇博客只是对 ApplicationContext 相关的接口做了一个简单的介绍Spring ApplicationContext 相关接口架构分析Spring 真的是一个非常优秀的框架,具有良好的结构设计和接口抽象,它的每一个接口职能单一,且都是具体功能到各个模块的高度抽象,且几乎每套接口都提供了一个默认的实现(defaultXXX),本文主要是以 Spring Framework 的 ApplicationContext 为中心,对其结构和功能的实现进行了简要的说明。#refresh()方法。
2024-03-23 11:13:13
1127
原创 如何进行SQL调优?
SQL调优是面试中经常爱问的问题,这个问题可以考察一个候选人对于SQL的整体性能优化的理解和掌握程度,今天我么你来聊一聊如何继续宁SQL调优。
2024-03-23 11:09:43
413
原创 关于订单到期关闭的实现方案
在电商、支付等系统中,一般都是先创建订单(支付单),再给用户一定的时间进行支付,如果没有按时支付的话,就需要把之前的订单(支付单)取消掉。这种类似的场景有很多,还有比如到期自动收货、超时自动退款、下单后自动发送短信等等都是类似的业务问题。我们本文介绍了11种实现订单定时关闭的方案,其中不同的方案各自都有优缺点,也各自适用于不同的场景中。
2024-03-22 08:15:00
1563
原创 Redis的内存淘汰策略是怎么样的?
Redis 的内存淘汰策略用于在内存满了之后,决定哪些 key 要被删除。Redis 支持多种内存淘汰策略,可以通过面置文件中的 maxmemory-policy 参数来指定。以下是 Redis 支持的内存淘汰策略。
2024-03-15 07:45:00
1048
原创 聊聊RocketMQ
先提交一个半消息,然后执行本地事务,再发送一个commit的半消息。首先在生产者端,消息的发送分为同步和异步两种,在同步发送消息的情况下,消息的发送会同步阻塞等待Broker返回结果,在Broker确认收到消息之后,生产者才会拿到SendResult,如果这个过程中发生异常,那么就说明消息发送可能失败了,就需要生产者进行重新发送消息。在发送事务消息时,首先向RocketMQ Broker发送一条 “half消息”(即半消息),半消息将被存储在Broker端的事务消息日志中,但是这个消息还不能被消费者消费。
2024-03-08 08:45:00
911
原创 金三银四JAVA程序猿的求职攻略:简历篇
随着春天的脚步渐近,对于许多程序员来说,一年中最繁忙、最重要的面试季节也随之而来。金三银四,即三月和四月,被广大程序员视为求职的黄金时期想要能够在众多的求职者中脱颖而出,拥有一个好的简历就尤其的重要。简历不是项目总结、不是工作总结、更不是你的生平介绍,他的目的是能体现出你的价值,体现出你和别人不一样。在金三银四的关键时期如何准备简历,快来看看吧~
2024-03-06 09:30:00
1339
原创 Redis为什么这么快?
Redis 作为Web应用、缓存、消息系统、实时统计等领域中非常受欢迎的数据库。Redis的特点包括快速、高可用和易扩展等,本文我们就一起探讨,Redis为何如此之快。
2024-03-04 09:25:04
1895
原创 分库分表之分表
分库分表是在面对高并发、海量数量时常见的数据库层面的解决方案。通过把数据分散到不同的数据库中,使得单一数据库的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。本篇我们将探讨如何分表。
2024-02-28 10:32:13
1075
1
原创 深入理解分库、分表、分库分表
分库分表,是企业里面比较常见的针对高并发、数据量大的场景下的一种技术优化方案,所谓"分库分表",根本就不是一件事儿,而是三件事儿,他们要解决的问题也都不一样,这三个事儿分别是"只分库不分表"、"只分表不分库”、以及"既分库又分表"。本文我们一起理解分库、分表的奥秘。
2024-02-27 07:45:00
2830
原创 什么是柔性事务?
柔性事务,是业内解决分布式事务的主要方案。所谓柔性事务,相比较与数据库事务中的ACID这种刚性事务来说,柔性事务保证的是“基本可用,最终一致。”这其实就是基于BASE理论,保证数据的最终一致性。
2024-02-24 09:00:00
1901
原创 Spring ApplicationContext 相关接口架构分析
Spring 真的是一个非常优秀的框架,具有良好的结构设计和接口抽象,它的每一个接口职能单一,且都是具体功能到各个模块的高度抽象,且几乎每套接口都提供了一个默认的实现(defaultXXX),本文主要是以 Spring Framework 的 ApplicationContext 为中心,对其结构和功能的实现进行了简要的说明。
2024-02-20 07:45:00
1570
原创 深入理解Java序列化的原理
序列化是将对象转换为可传输格式的过程。是一种数据的持久化手段。一般广泛应用于网络传输,RMI和RPC等场景中。几乎所有的商用编程语言都有序列化的能力,不管是数据存储到硬盘,还是通过网络的微服务传输,都需要序列化能力。本文将探索JAVA序列化原理
2024-02-19 08:00:00
1110
原创 Java是如何实现的平台无关?
平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行(WriteOnce ,Run Anywhere).也就是说,用Java创建的可执行二进制程序,能够不加改变的运行于多个平台。
2024-02-12 08:12:54
971
原创 聊聊JIT优化技术
我们知道,想要把高级语言转变成计算机认识的机器语言有两种方式,分别是编译和解释,然Java转成机器语言的过程中有一个步骤是要编译成字节码,但是,这里的字节码并不能在机器上直接执行。所以,IM中内置了解释器(interpreter),在运行时对字节码进行解释翻译成机器码,然后再执行。解释器的执行方式是一边翻译,一边执行,因此执行效率很低。为了解决这样的低效问题HotSpo引入了JIT技术(Just-In-Time)。本文我们就聊聊JIT。
2024-02-09 10:45:48
1630
原创 为啥我不建议使用@Transactional事务
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。本文先简单介绍下什么是声明式事务和编程式事务,再说一下为什么我不建议使用声明式事务。
2024-02-07 08:15:00
1149
原创 每天100w次登录请求,4C8G机器:如何做JVM调优?
JVM调优的作用是优化Java虚拟机的性能,从而提高程序的执行效率、稳定性和可靠性等多个方面。本文从实际场景出发,进行JVM调优。
2024-02-05 09:18:32
1431
原创 Cookie,Session,Token的区别是什么?
Cookie、Session和Token是用于在Web应用程序中管理用户状态和身份验证的技术。因为在Web应用中,HTTP的通信是无状态的,每个请求都是完全独立的,所以服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。Cookie是由服务器发送给用户浏览器的小型文本文件,存储在客户端的浏览器中。它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。服务器可以读取Cookie并使用其中的信息来进行识别和个性化处理。
2024-02-03 08:00:00
995
原创 深度解析MySQL主从复制
看本文之前,请先了解-下binlog、redolog等,知道他们的作用及写入过程。看到这里默认大家了解以上背景了,本篇主要将MySQL主从复制的过程以及复制方式。
2024-02-01 07:12:34
1296
原创 深入理解数据库事务
数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是个不可分割的工作单位。本文从多个角度分析数据库事务,并阐述了事务产生的问题。
2024-01-31 08:15:00
1166
原创 深入理解Spring Boot自动配置原理
本节我们从源码角度了解Spring Boot 自动配置原理,一起感受SpringBoot的魅力。在理解 Spring Boot 自动配置的原理的过程中,我们会发现,无论是配置类,还是条件注解也好,实际 Spring 原本都已经进行提供。甚至说,SpringFactoriesLoader 竟然也是 Spring 提供的。所以,Spring Boot 是在 Spring 的基础之上,实现了一套 Boot 启动机制。
2024-01-30 08:30:00
1692
原创 MySql之深入理解MVCC
MVCC,是Multiversion Concurrency Control的缩写,翻译过来是多版本并发控制,和数据库锁一样,他也是一种并发控制的解决方案。本文清晰的讲解了Mvcc的实现原理。
2024-01-29 08:45:00
1184
原创 关于CSRF和XSS攻击,这一篇就够了!
如今越来越多的应用程序依靠Web这一平台发展为由用户主导的内容互联网模式。Web应用已经成为了当前最流行的计算机应用程序,但是随着Web应用的越来越火热,安全问题也随之而来,跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是两种最流行的Web应用攻击方式。这里我们浅析CSRF攻击和XSS攻击的原理·起源和防范,并提出了防范攻击的一些可行性措施。
2024-01-28 11:12:35
1152
原创 关于DDoS,这一篇就够了!
在今天的信息时代,计算机网络的应用已经涉及到了社会的方方面面,人们的生活与网络密不可分,从而网络系统的安全、可靠性也成为用户最为关注的焦点。这里我们浅析 ddos(分布式拒绝服务攻击)的原理·起源和防范,从而对分布式拒绝服务攻击手段进行了较为全面地剖析,并提出了防范 ddos 攻击的一些可行性措施。
2024-01-27 08:30:00
1170
原创 单体服务到微服务架构的演进
随着公司业务的发展,传统的单体架构受到越来越多的瓶颈,因此微服务架构的改造已经成为了一种趋势。本文以订单系统为例,探讨单体服务如何演进到微服务架构,仅供参考,欢迎评论区留言,一起讨论。
2024-01-23 07:59:14
1661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅