- 博客(67)
- 收藏
- 关注
原创 掌控消息全链路(2)——RabbitMQ/Spring-AMQP高级特性之消息可靠性和重试机制
本文介绍了RabbitMQ在消息传输过程中可能出现的三种典型问题及解决方案:1)生产者消息丢失通过Confirm和Return确认机制解决;2)Broker消息丢失通过消息持久化解决;3)消费者处理失败通过手动确认机制解决。文章提供了完整的代码示例,包括队列声明、RabbitTemplate配置和消息发送实现,帮助开发者构建可靠的RabbitMQ消息传输系统。
2026-01-24 16:02:39
6982
94
原创 掌控消息全链路(1)——初识RabbitMQ:从核心概念到六种常用模式全景解析
同步通信和异步通信同步通信(Synchronous Communication):通信双方在严格的时间约束下进行交互。发送方发送请求或数据后,会主动等待并阻塞自身,直到收到接收方的明确响应(成功、失败或超时)才会继续执行后续操作。整个过程像是在进行一场“实时对话”异步通信(Asynchronous Communication):发送方发出请求或消息后,不等待接收方的即时响应,而是立即返回并继续执行后续任务。接收方在准备好结果后,通过某种机制将响应或结果“推送”或“通知”给发送方。
2026-01-16 18:42:26
2337
123
原创 深入解析MySQL(10)——基于Apache ShardingSphere的高性能架构详解
天行健,君子以自强不息。8.0.445.3.2(已免费上传至我的资源)8.0.30(已免费上传至我的资源)
2026-01-13 23:52:07
1530
100
原创 2025,九转苍翎的技术博客元年
大家好,我是九转苍翎。今年,我首次参加了CSDN博客之星评选,很幸运地在年度榜单中位列第214名。除此之外,在今年11月初,我还成功认证为CSDN的新星创作者。作为一名新人,在创作的第一年就能获得这两份认可,我感到非常荣幸,同时也深知荣誉背后意味着更多的责任与期待。在这篇年度总结里,我想与你分享这一年的收获、思考与未来的计划。
2025-12-30 18:27:23
1293
98
原创 Java高性能开发实战(1)——Redis 7 持久化机制
Redis是一个基于内存的数据库,这意味着其主要数据存储和操作均在内存中进行。这种设计使得Redis能够提供极快的读写速度(通常达到微秒级别),适用于高性能场景,如缓存然而,由于内存的易失性(断电后数据会丢失),Redis提供了持久化机制:将内存中的数据保存到磁盘中,确保数据在Redis服务重启或崩溃后能够恢复。通过持久化,可以避免数据丢失,提高数据的可靠性Redis提供两种持久化方式:生成数据集的快照实现持久化:记录所有写操作命令,以追加方式写入文件。
2025-12-25 21:50:38
7530
159
原创 Java外功核心(7)——深入源码,拆解Spring Bean作用域、生命周期与自动装配
在使用@Import注解导入Bean时,需要程序员熟悉第三方依赖的所有配置类、组件类或其他类,这对于程序员开发程序十分不友好。所以,应该由依赖的开发者来做这件事比较常见的方案就是第三方依赖给我们提供一个注解,该注解内部封装@Import注解@Retention(RetentionPolicy.RUNTIME)
2025-12-19 21:08:27
7805
152
原创 深入解析MySQL(8)——核心日志与备份恢复
它是MySQL数据库系统提供的命令行工具,用于逻辑备份和数据导出。它生成包含SQL语句的文本文件,可用于重建数据库结构和数据备份数据库:导出表结构、数据、存储过程、触发器等恢复数据:通过导入SQL文件恢复数据库状态跨版本兼容:导出的SQL文件可在不同MySQL版本间迁移它是MySQL数据库系统提供的命令行工具,用于高效地将文本文件数据导入到数据库表中。它是语句的封装,适用于批量数据加载场景快速导入:直接读取文件并加载到表,跳过SQL解析环节,性能优于逐行insert。
2025-12-15 19:57:09
6910
137
原创 Java外功精要(6)——Spring事务及其传播机制
Spring事务管理是Spring框架中用于确保数据库操作的核心机制。它通过或。
2025-12-05 16:07:09
9194
158
原创 深入解析MySQL(7)——SQL调优
在执行group by分组查询时,会先把符合where条件的结果保存在⼀个新创建的临时表中,临时表中每个分组字段的所有行都是连续的,然后再分离每个组并应用聚合函数(如果存在)。:对⼀个表同时使用多个索引进行条件扫描时,将满⾜条件的多个主键集合取交集或并集后再进行回表,可以提升查询效率(索引合并仅合并单个表中的索引扫描,而不能跨表扫描。是MySQL中联合索引使用的核心规则,指查询条件必须从联合索引的最左侧字段开始,并按索引定义的字段顺序依次匹配,才能充分利用索引。,这种类型查询性能极⾼,且只会返回一行数据。
2025-11-18 10:04:40
8384
160
原创 深入解析MySQL(6)——存储过程、游标与触发器
存储过程是一组预编译的SQL语句集合,存储在数据库中,可通过名称调用。支持条件判断、循环等逻辑控制,适合封装复杂业务逻辑在MySQL中,等数据库对象的信息可以通过中的系统视图查询。这个视图包含所有数据库中的存储过程和函数的元数据信息。
2025-10-31 17:52:49
6878
141
原创 Java外功精要(5)——Spring AOP
是一种编程范式,旨在将从业务逻辑中分离出来,通过模块化的方式增强代码的可维护性和复用性。核心思想是通过“切面”定义通用功能,并在运行时动态织入到目标代码中指的是在系统中"横向"跨越多个模块、多个层次的功能需求,它们无法很好地被封装在单个类或模块中。
2025-10-24 13:10:39
8941
126
原创 Java外功实战(4)——SpringBoot登录认证全栈实现:Session、统一结果封装、MD5加密与拦截器
Spring生态为Java后端开发提供了强大支持,但将分散的技术点整合成完整解决方案往往令人困惑。本文将以登录接口为切入点,系统演示如何将IOC/DI、MyBatis数据持久化、MD5加密、Session/Cookie管理、JWT令牌和拦截器机制融合运用,打造企业级认证方案目录结构。
2025-10-17 13:24:26
10377
103
原创 Java外功精要(3)——Spring配置文件和mybatis
MyBatis是一款优秀的持久层框架,支持自定义 SQL、存储过程、高级映射以及多种配置方式。它消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索支持存储过程:指的是数据库管理系统(DBMS)允许用户创建、存储和执行存储过程的能力。存储过程是一组预编译的SQL语句,存储在数据库中,可以被应用程序调用执行支持高级映射:指通过配置或注解实现复杂SQL查询结果与Java对象之间的灵活转换。其核心目标是简化数据库关联操作,提升开发效率支持多种配置方式:mybatis支持注解和xml两种配置方式。
2025-10-13 20:04:22
9477
97
原创 Java外功精要(2)——Spring IoC&DI
IoC(Inversion of Control,控制反转),是一种设计原则,用于减少代码间的直接依赖关系。传统编程中,调用者通常主动创建和管理被调用者的生命周期,而 IoC 将这种控制权交给外部容器或框架,由容器负责对象的创建、依赖注入和管理传统编程模式class Car{car.run();所有依赖都在类内部硬编码,缺乏灵活性难以修改组件的具体实现(例如更换Tire的类型或参数)组件之间耦合度高IoCclass Car{
2025-09-29 14:12:30
15370
76
原创 Java外功基础(1)——Spring Web MVC
Servlet是Java语言编写的、运行在服务器端的程序,它遵循一套标准的API规范(Tomcat是这套规范的一个具体实现/容器,并提供了让Servlet与前端交互的运行时环境)Spring Web MVC是基于Servlet API构建的原始Web框架,并从一开始就在 Spring框架中。正式名称“Spring Web MVC”, 来自其源模块的名称(spring-webmvc),但它通常被称为“Spring MVC”
2025-09-25 12:48:36
12756
67
原创 Java内功修炼(3)——并发的四重境界:单例之固、生产消费之衡、定时之准、池化之效
用于协调多个线程或进程之间的任务分配与数据处理。生产者负责生成数据或任务,消费者负责处理这些数据或任务,二者通过共享的缓冲区(队列)进行解耦,避免直接依赖核心作用1.解耦生产与消费逻辑:生产者仅负责生成数据并放入缓冲区,消费者仅从缓冲区获取数据并处理。两者无需直接交互,降低代码复杂度,提高模块化程度2.平衡处理速率差异:生产者与消费者通常以不同速度运行。缓冲区作为中间层,允许生产者持续写入数据,消费者按自身能力消费,避免互相阻塞3.削峰填谷:通过缓冲队列平滑流量波动,避免系统因瞬时高负载崩溃。
2025-09-01 18:40:06
7777
58
原创 Web前端开发基础
前端(Front-End),也称为客户端(Client-Side),指的是用户在使用网站或Web应用时。它打造一个在视觉上吸引人、交互流畅、性能优异且可访问性强的。
2025-08-26 15:30:08
1283
58
原创 Java内功修炼(2)——线程安全三剑客:synchronized、volatile与wait/notify
指在多线程环境下,某个代码、函数或对象能够被多个线程同时调用或访问时,仍能。简单来说,线程安全的代码在多线程环境下运行可靠,按照上述代码的逻辑,期望得到的结果是1000000,但当多个线程同时访问或修改时,由于缺乏适当的,可能导致程序行为不可预测、数据损坏或错误结果的现象。
2025-08-20 15:14:37
1928
52
原创 Java内功修炼(1)——时光机中的并发革命:从单任务到Java多线程
1950年代1960年代1970年代同一时间只能运行一个程序或任务,任务必须按顺序完成。用户需等待当前任务结束后才能启动新任务。系统资源由一个任务独占,缺乏并发能力,适用于简单应用场景允许同时运行多个程序或任务,通过或实现并发。
2025-08-16 19:49:05
1954
49
原创 全面解析MySQL(5)——“索引、事务、JDBC”三大核心
是Java提供的用于执行SQL语句的API,允许Java程序与多种关系型数据库交互。它为数据库操作提供统一接口,屏蔽底层数据库差异,开发者无需针对不同数据库编写特定代码JDBC核心组件:管理数据库驱动,建立与数据库的连接Connection:表示与数据库的会话(类似两个人打电话),用于创建Statement对象:执行SQL语句并返回结果ResultSet:封装SQL查询结果,提供遍历数据的方法。
2025-08-12 15:27:06
1681
47
原创 全面解析MySQL(4)——三大范式与联合查询实例教程
在数据设计时由于三大范式的要求,数据被拆分到多个表中,那么要查询⼀条数据的完整信息,就要从多个表中获取数据,这时就要使用联合查询联合查询的基础,指两个集合中所有可能的有序组合。在MySQL中,当联合查询未指定关联条件时,查询结果会返回所有表的行组合(列相加,行相乘)学生表学号姓名性别班级编号1张三男12李四男33王五女2班级表编号班级1Java班2C++班3Python班两表进行笛卡尔积学号姓名性别班级编号编号班级1张三男11Java班1。
2025-07-28 18:30:25
7440
67
原创 全面解析MySQL(3)——CRUD进阶&数据库约束
是数据库管理系统中用于确保数据完整性、一致性和有效性的规则集合。它们定义了数据在存储和操作过程中必须满足的条件,从而防止无效或不一致的数据进入数据库。非空约束、默认值约束、唯一约束、主键约束、外键约束、检查约束等。
2025-07-24 05:01:45
6692
50
原创 全面解析MySQL(1)——数据库基础
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它允许用户执行数据查询、更新、插入、删除等操作,广泛应用于数据库管理系统中1.数据定义语言(Date Definition Language,DDL):用于创建、修改或删除数据库对象。例如:create table:创建新表alter table:修改表结构drop table:删除表2.数据操作语言(Data Manipulation Language,DML)
2025-07-16 03:03:29
2119
68
原创 Java SE(13)——工具类
1.使用==进行比较:对于基本类型,比较的是变量中的值;对于引用类型比较的是引用中的地址//使用==进行比较int a = 1;int b = 1;int c = 2;//true//false//false2.使用equals方法进行比较:Object中equals默认按照==比较;String重写equals方法后按照字典序比较,相同返回true,不同返回false//使用equals方法进行比较//true//false3.使用compareTo方法进行比较。
2025-06-14 00:05:35
3442
70
原创 计算机网络(6)——局域网
以太网(Ethernet)是一种局域网(LAN)技术,遵循,用于在有限范围内(如家庭、办公室等)实现设备间的数据传输。
2025-06-06 18:53:14
8070
46
原创 计算机网络(5)——数据链路层
数据链路层负责从一个向另一个传输数据报。换言之,主要解决间的可靠数据传输:路由器和主机:连接相邻节点的通信信道。
2025-06-01 19:42:41
6349
34
原创 计算机网络(3)——传输层
(1)传输层为允许在不同主机(Host)上的进程提供了一种(2)端系统(如手机、电脑)运行传输层协议(3)传输层可以为应用提供多种协议,如UDP、TCP:传输层提供的一种抽象服务,它使得不同主机上的应用程序能够直接进行数据传输,而无需关注底层网络的实现细节。
2025-05-24 17:01:34
1507
27
原创 计算机网络(1)——概述
从组成细节角度来看:Internet是全球最大的互联网络,由ISP(互联网服务提供商,Internet Service Provider)网络互连的网络之网络。换言之,Internet是由多个独立网络互联而成的一个庞大的网络系统,它主要有以下几个组成部分:(1)成千上万的互连的计算设备集合(PC、手机等)(2)通信链路(光纤、卫星等)(3)交换网络:实现数据的分组转发(路由器、交换机等)从服务角度来看:能为用户提供什么服务(1)为网络应用提供通信服务基础设施:光纤、电缆、路由器等。
2025-05-17 20:34:42
1666
21
原创 Java SE(12)——异常(Exception)
虽然Java中已经内置了非常多的异常类,但不一定完全符合用户的需求,所以用户也可以自定义自己期望的异常如果希望自定义非检查型异常,可以继承自RuntimeException及其子类super();如果希望自定义检查型异常,可以继承自IOException等检查型异常super();super();super();if(!throw new UsernameErrorException("用户名错误");if(!
2025-05-13 21:43:57
1136
18
原创 Java SE(11)——内部类
Java中的内部类(Inner Class)是指在一个类的内部定义的类。当一个类的内部,存在一个部分需要完成的结构进行描述,而该内部结构只为外部类提供服务,那么这个内部结构就可以使用内部类(如Map中的entry内部类)
2025-05-11 19:50:50
6026
15
原创 Java SE(9)——多态
(Polymorphism)是面向对象编程的三大基本特性之一(封装和继承已经讲过了),它允许不同类的对象对同一消息做出不同的响应。具体来说,多态允许指向(向上转型),并通过该引用调用子类中的方法,从而实现不同的行为。
2025-05-06 19:46:06
1561
15
原创 Java SE(8)——继承
在Java中,是面向对象编程的三大基本特性之一(还有和),允许一个类(子类/继承类)继承另一个类(父类/基类)的和在我们现有的知识储备基础上,如果要抽象出和,代码就要这么些:但我们不难发现,在上述抽象狗和猫的过程中,有部分代码是重合的。这是因为狗和猫同属于动物,都有名字、毛色和年龄,都会睡觉。那么我可以定义一个类来对这些相同的代码(共性)进行抽取,然后让Dog和Cat类来继承Animal类中的属性。
2025-05-05 20:37:44
1340
13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅