<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhenyu333的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhenyu333</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhenyu333]]></copyright><item><title><![CDATA[RocketMQ订单事务消息实战教学]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/164300460</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/164300460</guid><author>zhenyu333</author><pubDate>Wed, 02 Sep 2026 16:58:57 +0800</pubDate><description><![CDATA[用户下单要同时扣库存、扣余额、加积分，拆成 MQ 异步履约后，原子性、重复投递、部分成功三大难题怎么破？本文用一个真实可跑的下单案例，讲透 RocketMQ 事务消息（half 消息/本地事务/回查）、三层幂等防线（Redis SETNX + DB 唯一索引 + 
  ▎ 条件更新）、业务失败与消费失败的区分处理、按状态补偿的 Saga 关单逆向流程，以及死信工单 + 人工重放的完整闭环。全量代码含 import、pom 依赖、建表 SQL，附三条可演示链路、生产落地清单与面试题速答，跟着做即可复现。]]></description><category></category></item><item><title><![CDATA[线程池生产实战教学]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/164088053</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/164088053</guid><author>zhenyu333</author><pubDate>Wed, 26 Aug 2026 14:34:39 +0800</pubDate><description><![CDATA[本文聚焦Java线程池生产实战，以银行营业厅类比讲解7大核心参数，剖析线上常见OOM、任务丢失、池被占满等事故根源。明确禁用Executors快捷方法，强调使用**有界队列、线程命名、业务池隔离**。提供查询、导出、异步通知三类生产可直接复用的线程池配置与业务代码。梳理拒绝策略选型、监控告警、优雅停机、TraceId上下文传递等踩坑要点。]]></description><category></category></item><item><title><![CDATA[CompletableFuture 并行查询规范（JDK17）]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/163262318</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/163262318</guid><author>zhenyu333</author><pubDate>Tue, 28 Jul 2026 10:43:49 +0800</pubDate><description><![CDATA[在微服务业务开发中，多数据源查询、多接口聚合场景十分常见。传统串行调用方式响应时长叠加，接口性能瓶颈突出。JDK8 引入的CompletableFuture为异步并行编程提供基础能力，JDK17 在此基础上完成 API 优化、异常处理增强，更加适合企业项目落地。

但大量项目存在滥用并行异步的问题：无统一线程池、异常未捕获、存在事务嵌套并行、依赖关系混乱等，极易引发线程耗尽、数据不一致、生产故障。 本文结合 JDK17 特性，整理一套CompletableFuture 并行查询开发规范，提供统一线程池方案、]]></description><category></category></item><item><title><![CDATA[Redis 分布式锁实战教学文档]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/163136537</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/163136537</guid><author>zhenyu333</author><pubDate>Thu, 23 Jul 2026 17:09:57 +0800</pubDate><description><![CDATA[本文围绕 Redis 分布式锁实战教学 展开，核心目标是帮助开发者在 SpringBoot / SpringCloud 项目中正确使用分布式锁，避免超扣、重复提交、定时任务并发执行等问题。]]></description><category></category></item><item><title><![CDATA[RocketMQ 5.3.1 完整部署 + SpringCloud Alibaba 集成与消费幂等案例]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162971634</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162971634</guid><author>zhenyu333</author><pubDate>Fri, 17 Jul 2026 16:55:32 +0800</pubDate><description><![CDATA[本文基于 Apache RocketMQ 5.3.1 版本，完整覆盖 Linux、Windows 双环境单机部署流程，针对内存不足、透明大页 THP 校验拦截两大启动报错提供详细修复方案；结合 SpringCloud Alibaba 完成生产者、消费者代码封装，演示同步 / 异步 / 顺序 / 标签过滤多种消息发送方式；最后以水务账单支付业务为场景，讲解「Redis 分布式锁 + 数据库原子行锁」双层架构，解决 MQ 重复消费、并发支付、余额脏写等线上高频问题，附完整消费代码与原子更新 SQL，适合新手快速]]></description><category></category></item><item><title><![CDATA[微服务 Sentinel 熔断限流实战：注解多兜底方法优先级、外部统一处理器配置教程]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162961270</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162961270</guid><author>zhenyu333</author><pubDate>Fri, 17 Jul 2026 13:45:17 +0800</pubDate><description><![CDATA[本文基于 Sentinel 1.8.9 完整实战 Spring Cloud Alibaba 接入方案，一方面系统梳理blockHandler、fallback、defaultFallback三类兜底方法的优先级、适用场景与外部统一处理器规范，提供全局通用降级处理代码；另一方面重点实现Sentinel 规则 Nacos 持久化，将流控、熔断规则存入 Nacos 配置中心，支持动态更新、多环境隔离、永久留存，无需重复配置。文中附带完整依赖、配置文件、标准规则 JSON 与测试接口代码，覆盖限流、慢调用熔断。]]></description><category></category></item><item><title><![CDATA[Sentinel Dashboard 1.8.9 部署+Systemd 托管完整操作文档]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162908930</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162908930</guid><author>zhenyu333</author><pubDate>Wed, 15 Jul 2026 16:59:02 +0800</pubDate><description><![CDATA[本文档提供了Sentinel Dashboard 1.8.9版本的部署指南，包含：1）程序包路径为/home/sentinel/sentinel-dashboard-1.8.9.jar，服务监听8082端口；2）详细部署步骤包括创建目录、配置systemd服务文件（标准日志输出到/root/logs）、重载配置；3）完整的服务管理命令（启动/停止/重启/状态查看）；4）验证方法及访问地址（控制台http://127.0.0.1:8082）。文档特别优化了日志输出方式，确保兼容性，并提供了进程自动重启和开机自]]></description><category></category></item><item><title><![CDATA[Java集成openfeign远程RPC调用教程]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162906320</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162906320</guid><author>zhenyu333</author><pubDate>Wed, 15 Jul 2026 15:17:46 +0800</pubDate><description><![CDATA[本文介绍了基于Spring Cloud OpenFeign实现微服务间RPC调用的具体实现方法。文章分为四个部分：1）API模块定义FeignClient接口及常量；2）被调用者influx模块实现接口；3）调用者meter模块通过注入接口完成调用；4）注意事项。重点说明了依赖配置、接口定义规范（GET请求参数处理）、启动类注解（@EnableFeignClients）等关键实现细节，并强调在Spring Cloud Alibaba 2025版本中依赖管理的变化。全文提供了完整的代码示例，涵盖了从接口定义到]]></description><category></category></item><item><title><![CDATA[springcloudAlibaba2025.0.0.0组件版本对应关系]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162904047</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162904047</guid><author>zhenyu333</author><pubDate>Wed, 15 Jul 2026 14:51:44 +0800</pubDate><description><![CDATA[本文介绍了SpringCloud Alibaba微服务项目的主要依赖配置及RPC调用注意事项。父模块需配置SpringCloud Alibaba(2025.0.0)、SpringBoot(3.5.5)等基础依赖，包含Knife4j增强SwaggerUI、Druid连接池、Sentinel、MySQL驱动等组件。特别强调MyBatis-Plus必须使用boot3-starter的3.5.x版本。子模块进行Feign远程调用时需引入openfeign和loadbalancer依赖，注意新版本已移除Ribbon。]]></description><category></category></item><item><title><![CDATA[Nacos 3.0.3 Linux 单机部署完整文档（systemd 托管）]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162851386</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162851386</guid><author>zhenyu333</author><pubDate>Mon, 13 Jul 2026 23:45:15 +0800</pubDate><description><![CDATA[本文详细介绍了在CentOS/Alibaba Cloud Linux系统上部署Nacos 3.0.3单机版的完整流程。主要内容包括：环境说明（JDK17要求、端口规划）、两种持久化方案（内嵌Derby/MySQL8.0）配置、核心application.properties文件规范（重点说明鉴权模块强制要求JWT密钥生成和数据库配置）、systemd服务配置方法，以及常见启动报错解决方案。特别强调3.0.3版本必须开启鉴权并配置32位Base64密钥，同时提供了MySQL8连接问题的解决方法。]]></description><category></category></item><item><title><![CDATA[XXL-JOB 部署及 Java 项目完整集成实战]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162846742</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162846742</guid><author>zhenyu333</author><pubDate>Mon, 13 Jul 2026 17:32:20 +0800</pubDate><description><![CDATA[XXL-JOB分布式任务调度平台部署指南 环境要求：Maven 3+、JDK 17+、MySQL 8.0+ 部署步骤： MySQL建表：执行官网提供的建表SQL，包含xxl_job_group、xxl_job_info等核心表 部署控制台：修改xxl-job-admin配置连接MySQL Java集成： 引入xxl-job-core依赖 配置application.yml（admin地址、accessToken等） 创建配置类初始化XxlJobSpringExecutor 开发任务类使用@XxlJob注解 ]]></description><category></category></item><item><title><![CDATA[Java集成InfluxDB_3.10]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162845500</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162845500</guid><author>zhenyu333</author><pubDate>Mon, 13 Jul 2026 16:52:35 +0800</pubDate><description><![CDATA[本文介绍了基于InfluxDB 3.10的Java实现方案，使用JDK17开发。主要内容包括：1）引入influxdb3-java和Lombok等依赖；2）配置InfluxDB连接参数；3）实现数据插入、查询和分页查询功能，包含完整的Controller、Service和DAO层代码；4）使用Swagger生成API文档；5）处理时间戳时区问题，原始数据保留UTC时间，业务展示时转换为北京时间。文章提供了智能电表数据的CRUD操作示例，包含参数校验、分页逻辑和批量数据生成任务，展示了InfluxDB在时序数]]></description><category></category></item><item><title><![CDATA[Alibaba Cloud Linux 4 完整安装MySQL8.0全套部署流程]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162771581</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162771581</guid><author>zhenyu333</author><pubDate>Fri, 10 Jul 2026 22:34:12 +0800</pubDate><description><![CDATA[- 刷新权限，配置立即生效 八、服务器防火墙放行 3306 数据库端口。-- 授予全部数据库所有操作权限，并允许该账号分配权限给其他人。-- 创建允许任意IP连接的root账号，密码root。复制输出里的临时密码，用于登录 MySQL。]]></description><category></category></item><item><title><![CDATA[InfluxDB_3.10 安装部署]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162728714</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162728714</guid><author>zhenyu333</author><pubDate>Thu, 09 Jul 2026 16:00:16 +0800</pubDate><description><![CDATA[本文提供了InfluxDB 3.0的两种安装方式：官方文档部署和本地RPM包安装。官方安装需下载密钥并配置YUM仓库，可能因网络问题失败；本地安装则需提前下载RPM包和密钥文件，通过yum或rpm命令安装。安装后介绍了服务管理命令、默认配置路径（如配置文件/etc/influxdb3/influxdb3-core.conf、数据目录/var/lib/influxdb3/data）以及首次访问的两种鉴权处理方案：关闭鉴权（测试用）或创建管理员令牌（生产环境推荐）。最后指导部署独立UI界面容器，通过8888端口]]></description><category></category></item><item><title><![CDATA[Java集成Minio实现上传文件]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162707100</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162707100</guid><author>zhenyu333</author><pubDate>Wed, 08 Jul 2026 22:45:29 +0800</pubDate><description><![CDATA[本文介绍了基于MinIO实现文件上传接口的开发过程。接口具备文件名重复检测功能，当文件名重复时会自动拼接UUID前缀。实现步骤包括：1) 添加MinIO依赖；2) 创建包含文件上传接口的Controller；3) 实现Service层逻辑，通过MinioClient进行文件存在性校验、重命名处理和上传操作；4) 最终返回文件访问URL。关键点包括MinIO客户端配置、文件名处理（分割和UUID拼接）以及异常处理。该方案适用于需要对象存储服务的应用场景。]]></description><category></category></item><item><title><![CDATA[minio安装部署及相关参数配置（附安装包）]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162698302</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162698302</guid><author>zhenyu333</author><pubDate>Wed, 08 Jul 2026 16:04:42 +0800</pubDate><description><![CDATA[本文介绍了在Linux系统上部署MinIO对象存储服务的完整流程。主要内容包括：1）通过wget下载RPM安装包并使用dnf安装；2）创建minio-user用户组和存储目录；3）配置环境变量文件设置管理员账号、存储路径和控制台端口；4) 使用systemctl管理服务启停及开机自启；5) 通过9001端口访问控制台。文档还详细说明了MinIO控制台的9大功能模块：对象浏览器、访问密钥管理、存储桶管理（含命名规则说明）、权限策略、用户管理、监控告警、事件通知、系统配置和许可证管理，重点解释了存储桶创建时版本]]></description><category></category></item><item><title><![CDATA[异步方法调用详解]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/162490453</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/162490453</guid><author>zhenyu333</author><pubDate>Wed, 01 Jul 2026 16:36:16 +0800</pubDate><description><![CDATA[本文基于Spring的@Async注解，详解了四种异步调用场景的实现与差异]]></description><category></category></item><item><title><![CDATA[Hutool 各类型标准判空大全]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/161007295</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/161007295</guid><author>zhenyu333</author><pubDate>Tue, 12 May 2026 09:55:59 +0800</pubDate><description><![CDATA[本文总结了Java中常见数据类型的判空工具及方法。字符串使用StrUtil.isNotBlank()判断非空；集合用CollUtil.isNotEmpty()检查非空集合；Map通过MapUtil.isNotEmpty()验证键值对存在；数组采用ArrayUtil.isNotEmpty()检测元素；实体类使用BeanUtil.isEmpty()判断字段全空；数值类型则用NumberUtil.isNotZero()确保非零。这些工具方法覆盖了开发中主要的判空场景，能有效避免NPE异常，提升代码健壮性。]]></description><category></category></item><item><title><![CDATA[idea不同仓库代码合并操作]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/160974120</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/160974120</guid><author>zhenyu333</author><pubDate>Mon, 11 May 2026 11:40:36 +0800</pubDate><description><![CDATA[本文介绍了使用idea对多个Git仓库合并代码操作的五个步骤：1）添加区分明显的远程仓库；2）刷新Git确认连接成功；3）拉取需要合并的分支到本地；4）通过cherry-pick选择性地合并特定提交记录；5）强调按时间顺序逐个cherry-pick以避免代码混乱。重点说明了如何将第二个仓库的dev分支合并到第一个仓库的master分支，并提示注意解决可能的合并冲突。]]></description><category></category></item><item><title><![CDATA[MySQL数据库添加索引语句]]></title><link>https://blog.youkuaiyun.com/zhenyu333/article/details/160971143</link><guid>https://blog.youkuaiyun.com/zhenyu333/article/details/160971143</guid><author>zhenyu333</author><pubDate>Mon, 11 May 2026 10:54:20 +0800</pubDate><description><![CDATA[【代码】MySQL数据库添加索引语句。]]></description><category></category></item></channel></rss>