- 博客(30)
- 收藏
- 关注
原创 Java设计模式:从老干部到Spring潮人
设计模式不是圣经,是前人踩坑后的路标。GoF 23将发布于1994年——那时还没有Spring,没有注解,没有Lambda。策略模式 →@Autowired自动装配 +策略注册表模板方法 →回调式模板观察者模式 →发布订阅机制工厂模式 →@Bean代理模式 → Spring AOP 动态代理(JDK/CGLIB)学设计模式,不要背UML图。打开Spring源码,看看怎么管理生命周期,怎么刷新容器,怎么构建AOP拦截器链——最好的设计模式课,就在你每天都在用的框架里。
2026-06-01 09:05:27
386
原创 Linux 系统命令使用速查手册
本手册中的命令已在 CentOS 7/8、Ubuntu 20.04/22.04、Debian 11/12 上验证。)可能需要通过包管理器额外安装。touch [文件]
2026-06-01 09:00:35
346
原创 Elasticsearch 深度解析:从倒排索引原理到亿级数据生产实战
维度关系型数据库数据模型行存储倒排索引 + 列存(doc_values)查询方式B+Tree 精确查询FST 分词搜索 + BKD Tree 范围查询扩展性垂直扩展为主水平分片原生支持事务ACID无事务,最终一致聚合需全表扫描列存预排序,毫秒级适用强一致事务全文搜索、日志分析、指标聚合。
2026-05-29 16:10:59
301
原创 Netty 深度解析:从 NIO 模型到百万级连接生产实战
*** ★ 自定义协议消息结构* | 字段 | 类型 | 长度 | 说明 |* | length | int | 4B | 消息总长度(含header) |* | version | byte | 1B | 协议版本(0x01) |* | cmd | byte | 1B | 命令类型 |* | seq | short | 2B | 序列号 |*/@Data// 自动计算// 命令类型枚举/*** ★ 编码器: ProtocolMessage → ByteBuf。
2026-05-29 16:10:24
262
原创 Spring Cloud Gateway 深度解析:从路由原理到生产级网关实战
摘要:Spring Cloud Gateway 作为 Spring 生态的响应式 API 网关,基于 WebFlux 和 Netty 实现高性能路由。本文深入剖析其核心架构,包括 RouteDefinitionRouteLocator 的路由加载机制、RoutePredicateHandlerMapping 的请求匹配逻辑,以及 FilteringWebHandler 的过滤器链编排流程。通过源码分析展示了从配置加载到请求转发的完整链路,并探讨了动态路由、自定义过滤器和生产级集成方案。
2026-05-27 17:50:42
527
原创 幂等性设计:Token 机制、数据库唯一索引与状态机的组合方案
层级方案作用实现复杂度第一层Token 机制拦截重复提交(前端)低第二层唯一索引数据库级幂等兜底低第三层状态机业务级天然幂等中第四层MQ 去重表消息消费幂等中核心原则:多层防护,不依赖单一机制。
2026-05-24 18:50:14
76
原创 Spring Transaction 传播机制
传播行为当前有事务当前无事务实现机制REQUIRED加入创建新事务最常用,默认行为SUPPORTS加入无事务查询方法可用MANDATORY加入抛异常强制上层有事务挂起当前,创建新创建新事务独立事务挂起当前,无事务无事务不需要事务的方法NEVER抛异常无事务禁止事务NESTED创建保存点创建新事务组件职责ThreadLocal 绑定事务资源AOP 拦截方法传播行为决策JDBC 事务的具体实现挂起事务的快照。
2026-05-24 18:48:01
240
原创 API 版本控制:Spring Boot 多版本路由的六种实现方案对比
本文对比了Spring Boot中六种API版本控制方案:URL Path(最常用)、Header版本控制、Content-Type协商、Query Parameter、API Gateway路由和数据库版本配置。重点分析了URL Path和Header方案的实现代码,并推荐了API Gateway路由作为生产环境最佳实践。文章还提供了DTO演进策略和版本兼容建议,最后根据不同场景给出方案推荐:小型项目用URL Path,大型微服务用API Gateway路由,RESTful纯化要求用Content-Typ
2026-05-21 11:03:53
194
原创 Spring IOC 容器 refresh() 方法
Spring IOC容器refresh()方法解析:12个关键步骤详解 摘要: 本文深入解析Spring核心方法refresh()的执行流程,详细拆解其12个标准步骤。从环境准备(prepareRefresh)、BeanFactory创建(obtainFreshBeanFactory)、配置处理(invokeBeanFactoryPostProcessors),到Bean初始化(finishBeanFactoryInitialization)和事件发布(finishRefresh),完整呈现了Spring容
2026-05-21 09:08:16
559
原创 Java 异常处理的分层策略与错误码设计规范
层次职责禁止事项Controller异常转换 → 统一响应不要写业务逻辑Service业务校验 → 抛业务异常不要捕获所有异常吞掉Repository技术异常 → 业务异常转换不要让 SQLException 上浮兜底 + 日志 + 监控不要暴露堆栈给客户端核心原则早失败:在方法入口快速校验参数,失败立即抛出不吞异常:捕获的异常要么处理,要么转换后抛出分层转换:技术异常 → 业务异常 → 用户友好响应完整日志:异常必须带上下文(traceId、参数、错误码)不可变优先。
2026-05-19 12:05:30
247
原创 Spring Boot 自动装配源码
阶段核心操作关键源码位置触发解析@Import加载SPI 读取筛选候选配置去重+排除过滤条件判定注册Bean 定义注册到容器核心设计思想约定优于配置:通过 classpath 上的 jar 包自动发现功能条件化装配精准控制配置的生效时机用户定制优先保证用户自定义 Bean 覆盖默认配置SPI 解耦:通过实现模块间的松耦合扩展。
2026-05-19 11:38:42
705
原创 GaussDB GDS 搭建完全指南:从安装到启动,一文搞定数据迁移服务
GaussDB跨库数据迁移的核心组件GDS(Gauss Data Service)是实现外表迁移的关键工具。本文详细介绍了GDS的安装配置流程:首先创建专用用户并解压安装包,然后配置数据目录和环境变量。启动GDS服务时需指定数据目录、监听端口等参数,并确保防火墙开放相应端口。重点解析了外表location路径与物理路径的映射关系,这是最容易出错的环节。文章还提供了常见问题排查方法,如端口占用、权限不足等问题的解决方案。通过正确部署GDS服务,可为GaussDB跨库数据迁移建立高效可靠的数据通道。
2026-05-18 11:45:22
788
原创 生产环境 Oracle 替换为 OceanBase 实战指南:OMS 反向增量回滚保障全解析
本文详细记录了Oracle迁移至OceanBase的完整方案,重点解析了OMS反向增量作为回滚保障机制的工作原理和实施要点。迁移采用停服方式,通过反向增量确保OB出问题时能回退至Oracle。文章详细阐述了迁移前的先决条件(表必须有唯一键)、隐藏列风险、任务创建步骤,以及正向切换的六步流程。同时提供了同步频率调整策略,建议根据OB稳定性和运维成熟度逐步降低同步频率。文中还特别强调了无主键表的迁移风险及解决方案,并解答了常见问题。该方案适合准备进行类似迁移的DBA和架构师参考。
2026-05-18 09:10:51
500
原创 GaussDB GDS 外表迁移实战:跨库数据搬迁完整指南
本文详细介绍了使用GaussDB的GDS外表功能实现跨库数据迁移的完整流程。通过Foreign Table方式,可在同构或异构GaussDB实例间高效搬迁数据。文章分为准备工作、迁移步骤、验证方法和常见问题四部分,重点讲解了如何创建迁出/迁入外表、设置关键参数以及处理迁移中的特殊字符和约束问题。该方法具有高性能、低侵入和高容错优势,仅需SQL即可完成"建表→建外表→导出→导入→校验"的全流程。适用于GaussDB 200/GaussDB(for openGauss)等支持GDS外表的版本
2026-05-14 11:28:24
444
原创 VMware 下 CentOS7 部署 OceanBase 4.5.0 社区版 + OMS 4.2.13 实现 Oracle 迁移学习环境
本文详细介绍了在VMware虚拟机中部署OceanBase 4.5.0社区版和OMS 4.2.13 CE的全过程,用于搭建Oracle迁移学习环境。主要内容包括: 环境准备:配置CentOS 7.9虚拟机(8核CPU/24G内存/300G SSD),完成磁盘扩容、静态IP设置、系统参数优化等基础配置。 软件安装:更换yum源后安装Docker,创建专用admin用户。 OceanBase部署:下载社区版安装包(仅支持MySQL模式),详细说明安装步骤。 特别说明:虽然使用社区版MySQL租户模拟,但操作流程
2026-04-29 08:54:33
549
原创 maven settings.xml配置
该Maven配置文件定义了多个服务器认证信息、镜像仓库和依赖仓库配置。包含3个服务器节点(public/release/snapshot)和2个镜像仓库(本地TFS公共组和阿里云中央库),其中阿里云镜像仅代理中央仓库。在profile中配置了release和snapshot两个仓库,分别启用不同类型构件下载。最后激活了名为"repos"的profile以应用这些配置。
2025-06-05 08:53:34
258
原创 DEEPINV23关机2分钟
最后解决方案: 修改 /usr/lib/systemd/system/user@.service 里 TimeoutStopSec=120s 为 TimeoutStopSec=15s。
2025-01-06 10:47:24
286
原创 deepin/uos wps不能通过双击打开word文档
4 . 找到第4行内容 Exec=/opt/apps/cn.wps.wps-office/files/bin/wps %U,将末尾的 %U修改为 %F,保存退出。文件管理器进入 /usr/share/applications 目录。选中“WPS 文字”,右击选择“打开方式” - “文本编辑器”右击空白处,选择“以管理员身份打开”
2025-01-06 10:25:58
1383
1
原创 ubuntu安装搜狗输入法
点击“添加或删除语言”后勾选“中文简体”,然后应用。如果没有fcitx则需要先安装fcitx。“键盘输入法系统”选择“fcitx”打开设置,选择“区域与语言”点击“管理已安装语言”通过命令安装fcitx。
2023-10-27 22:58:08
238
原创 java实现zip压缩
java实现zip压缩import java.io.*;import java.util.Enumeration;import java.util.zip.*;public class ZipUtils { static final int BUFFER = 8192; /** * 压缩文件 * * @param srcPath 被压缩的目录 * @param dstPath 压缩后的zip包 * @throws IOExce
2022-03-10 00:01:29
776
原创 Linux版IntelliJ IDEA安装
Linux版IntelliJ IDEA安装下载解压生成桌面图标在桌面创建文件编辑图标文件添加以下内容下载进入IDEA下载地址解压tar -xzf idea- 2021.2.2.tar.gz /opt/dev/生成桌面图标在桌面创建文件touch idea.desktop编辑图标文件vim idea.desktop添加以下内容[Desktop Entry]Name=IntelliJ IDEAComment=IntelliJ IDEAExec=/opt/dev/idea-IU-
2021-10-03 17:59:34
951
原创 远程连接Oracle报错:无监听程序
问题描述本机连接数据库正常,通过IP连接或者别人连接就会报错,ORA-12541:TNS:无监听程序解决方案:修改E:\app\root\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora
2021-08-16 19:08:29
3017
原创 DB2数据库常用语句
创建数据库语句db2 create db 数据库名 on 路径 using codeset GBK territory cn连接数据库db2 connect to 数据库名 user 用户名 using 密码数据库服务停止和启动--停止db2stop force--启动db2start整库备份db2 backup db 数据库名 user 用户名 using 密码 to 路径整库恢复db2 restore db 数据库名 user 用户名 using 密码 from 路径数据库单
2021-06-03 21:34:11
1910
原创 docker安装配置
1、卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-late...
2020-04-27 13:14:42
152
原创 IDEA安装mysql驱动报错
IDEA安装mysql驱动报错Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ prope连接数据库 mysql -hlocalhost -uroot -pshow variables like’%time_zone’;如果是SYSTEM则说明没有设置时区3.set g...
2020-04-27 13:04:08
606
本文记录了一次真实的生产环境 Oracle 替换为 OceanBase 数据库的完整迁移方案 重点解析 OMS 反向增量(Reverse Incremental)作为回滚保障机制的工作原理、先决条件、
2026-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅