<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Frank</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <icon>https://frank-dev.site/images/favicon.png</icon>
  <id>https://frank-dev.site/</id>
  <link href="https://frank-dev.site/" rel="alternate"/>
  <link href="https://frank-dev.site/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Frank</rights>
  <subtitle>刘起杰（Frank）的个人博客，分享 Java 后端、全栈开发与 AI 工程化的技术笔记。</subtitle>
  <title>Frank's Notes</title>
  <updated>2026-10-12T09:40:00.682Z</updated>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="Mybatis" scheme="https://frank-dev.site/categories/Mybatis/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="JDBC" scheme="https://frank-dev.site/tags/JDBC/"/>
    <category term="事务" scheme="https://frank-dev.site/tags/%E4%BA%8B%E5%8A%A1/"/>
    <category term="MyBatis" scheme="https://frank-dev.site/tags/MyBatis/"/>
    <category term="Spring" scheme="https://frank-dev.site/tags/Spring/"/>
    <id>https://frank-dev.site/2026/09/13/articles/Mybatis/05-mybatis-types-transactions-and-ecosystem/</id>
    <link href="https://frank-dev.site/2026/09/13/articles/Mybatis/05-mybatis-types-transactions-and-ecosystem/"/>
    <published>2026-09-13T10:00:00.000Z</published>
    <summary>承接第 04 篇，在现有 com.frank.mybatis 项目中逐文件加入类型处理、批处理、事务工厂、主键回填与可选 Spring 外部事务适配。</summary>
    <title>手写 MyBatis 05：类型、批处理、事务与 Spring 生态增量</title>
    <updated>2026-10-12T09:40:00.682Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="Mybatis" scheme="https://frank-dev.site/categories/Mybatis/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MyBatis" scheme="https://frank-dev.site/tags/MyBatis/"/>
    <category term="缓存" scheme="https://frank-dev.site/tags/%E7%BC%93%E5%AD%98/"/>
    <category term="插件" scheme="https://frank-dev.site/tags/%E6%8F%92%E4%BB%B6/"/>
    <category term="ResultMap" scheme="https://frank-dev.site/tags/ResultMap/"/>
    <id>https://frank-dev.site/2026/09/12/articles/Mybatis/04-mybatis-cache-plugin-and-nested-mapping/</id>
    <link href="https://frank-dev.site/2026/09/12/articles/Mybatis/04-mybatis-cache-plugin-and-nested-mapping/"/>
    <published>2026-09-12T10:00:00.000Z</published>
    <summary>承接第 03 篇的 com.frank.mybatis 项目，逐文件实现一级和二级缓存、插件签名链、ResultMap 嵌套映射与 chapter04 集成测试。</summary>
    <title>手写 MyBatis 04：缓存、插件与嵌套映射（项目增量）</title>
    <updated>2026-10-12T09:40:00.682Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="Mybatis" scheme="https://frank-dev.site/categories/Mybatis/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MyBatis" scheme="https://frank-dev.site/tags/MyBatis/"/>
    <category term="动态SQL" scheme="https://frank-dev.site/tags/%E5%8A%A8%E6%80%81SQL/"/>
    <category term="参数处理" scheme="https://frank-dev.site/tags/%E5%8F%82%E6%95%B0%E5%A4%84%E7%90%86/"/>
    <id>https://frank-dev.site/2026/09/11/articles/Mybatis/03-mybatis-dynamic-sql-and-parameters/</id>
    <link href="https://frank-dev.site/2026/09/11/articles/Mybatis/03-mybatis-dynamic-sql-and-parameters/"/>
    <published>2026-09-11T10:00:00.000Z</published>
    <summary>承接第 02 篇的 XML 与 MappedStatement，在既有 com.frank.mybatis 项目中逐文件加入 SqlNode、SqlSource、BoundSql、TypeHandler 与安全参数绑定。</summary>
    <title>手写 MyBatis 03：动态 SQL 与参数绑定，逐文件增量实现</title>
    <updated>2026-10-12T09:40:00.681Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="Mybatis" scheme="https://frank-dev.site/categories/Mybatis/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="反射" scheme="https://frank-dev.site/tags/%E5%8F%8D%E5%B0%84/"/>
    <category term="MyBatis" scheme="https://frank-dev.site/tags/MyBatis/"/>
    <category term="XML" scheme="https://frank-dev.site/tags/XML/"/>
    <id>https://frank-dev.site/2026/09/10/articles/Mybatis/02-mybatis-xml-and-statement-id/</id>
    <link href="https://frank-dev.site/2026/09/10/articles/Mybatis/02-mybatis-xml-and-statement-id/"/>
    <published>2026-09-10T10:00:00.000Z</published>
    <summary>承接第 01 篇的注解 Mapper，在既有工程中新增 XMLMapperBuilder、XMLConfigBuilder 与 Resources，把 XML 与注解统一为字符串 statement id 的 MappedStatement 注册模型。</summary>
    <title>手写 MyBatis 02：XML、注解与 Statement ID，统一配置模型</title>
    <updated>2026-10-12T09:40:00.680Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="Mybatis" scheme="https://frank-dev.site/categories/Mybatis/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="JDBC" scheme="https://frank-dev.site/tags/JDBC/"/>
    <category term="MyBatis" scheme="https://frank-dev.site/tags/MyBatis/"/>
    <category term="动态代理" scheme="https://frank-dev.site/tags/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/"/>
    <id>https://frank-dev.site/2026/09/09/articles/Mybatis/01-mybatis-mini-framework/</id>
    <link href="https://frank-dev.site/2026/09/09/articles/Mybatis/01-mybatis-mini-framework/"/>
    <published>2026-09-09T10:00:00.000Z</published>
    <summary>在既有 Java 17 与 H2 空骨架中，逐 checkpoint 实现注解 Mapper、SQL 元数据、代理、会话、事务、JDBC 执行和结果映射。</summary>
    <title>手写 MyBatis 01：从注解 Mapper 到 JDBC 的最小闭环</title>
    <updated>2026-10-12T09:40:00.680Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="LangChain4j" scheme="https://frank-dev.site/tags/LangChain4j/"/>
    <category term="AI 应用" scheme="https://frank-dev.site/tags/AI-%E5%BA%94%E7%94%A8/"/>
    <category term="Spring AI" scheme="https://frank-dev.site/tags/Spring-AI/"/>
    <category term="框架选型" scheme="https://frank-dev.site/tags/%E6%A1%86%E6%9E%B6%E9%80%89%E5%9E%8B/"/>
    <id>https://frank-dev.site/2026/09/03/articles/AI/java-ai-frameworks-compare/</id>
    <link href="https://frank-dev.site/2026/09/03/articles/AI/java-ai-frameworks-compare/"/>
    <published>2026-09-03T10:00:00.000Z</published>
    <summary>Java AI 框架横向盘点：裸调 SDK 的边界、LangChain4j 积木式构建块与 Spring AI 约定式管道的设计哲学对比、Spring AI Alibaba 与 Semantic Kernel 的生态绑定得失、Koog 与 Google ADK 等新势力定位，以及一张选型决策树。</summary>
    <title>Java AI 框架全景对比：LangChain4j、Spring AI 与各路新势力怎么选</title>
    <updated>2026-10-12T09:40:00.673Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="聚合管道" scheme="https://frank-dev.site/tags/%E8%81%9A%E5%90%88%E7%AE%A1%E9%81%93/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/06-mongodb-aggregation-lookup-facet/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/06-mongodb-aggregation-lookup-facet/"/>
    <published>2026-08-27T15:00:00.000Z</published>
    <summary>跨集合聚合全景：$lookup 联表五参数与数组语义、$unwind 拆解、$facet 一趟拿全分页页脚、$cond/$switch 条件加工、$graphLookup 递归组织架构树，以及 $merge 物化报表与六条优化清单。</summary>
    <title>MongoDB 从零到一（06）：聚合管道（下），$lookup、$facet 与复杂报表</title>
    <updated>2026-10-12T09:40:00.680Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="聚合管道" scheme="https://frank-dev.site/tags/%E8%81%9A%E5%90%88%E7%AE%A1%E9%81%93/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/05-mongodb-aggregation-pipeline-basics/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/05-mongodb-aggregation-pipeline-basics/"/>
    <published>2026-08-27T14:00:00.000Z</published>
    <summary>用流水线心智模型掌握 MongoDB 聚合框架：SQL 子句到聚合阶段的完整映射、$match/$group/$project/$sort 核心阶段、accumulator 一览、日期分组报表，以及内存限制与 $match 前置两条性能铁律。</summary>
    <title>MongoDB 从零到一（05）：聚合管道（上），从 GROUP BY 到 Pipeline</title>
    <updated>2026-10-12T09:40:00.680Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="数据库设计" scheme="https://frank-dev.site/tags/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/04-mongodb-data-modeling/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/04-mongodb-data-modeling/"/>
    <published>2026-08-27T13:00:00.000Z</published>
    <summary>MongoDB 建模的灵魂问题——关联数据何时嵌入、何时引用。给出决策三问与决策树，讲透一对少/一对多/一对巨的谱系、反范式冗余的正确用法、四种官方模式与 Schema 校验兜底。</summary>
    <title>MongoDB 从零到一（04）：数据建模，嵌入还是引用</title>
    <updated>2026-10-12T09:40:00.679Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="数据库" scheme="https://frank-dev.site/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/03-mongodb-crud-operators/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/03-mongodb-crud-operators/"/>
    <published>2026-08-27T12:00:00.000Z</published>
    <summary>系统梳理 MongoDB 增删改查：find 的比较、逻辑、字段、数组四大类操作符，投影与排序分页，更新的操作符体系与整文档替换的风险，以及 bulkWrite 批量写与六条高频踩坑清单。</summary>
    <title>MongoDB 从零到一（03）：CRUD 全解，find 操作符与更新表达式</title>
    <updated>2026-10-12T09:40:00.679Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Vue" scheme="https://frank-dev.site/tags/Vue/"/>
    <category term="前端" scheme="https://frank-dev.site/tags/%E5%89%8D%E7%AB%AF/"/>
    <category term="工程化" scheme="https://frank-dev.site/tags/%E5%B7%A5%E7%A8%8B%E5%8C%96/"/>
    <category term="npm" scheme="https://frank-dev.site/tags/npm/"/>
    <category term="pnpm" scheme="https://frank-dev.site/tags/pnpm/"/>
    <id>https://frank-dev.site/2026/08/27/articles/Vue/10-package-managers-npm-pnpm/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/Vue/10-package-managers-npm-pnpm/"/>
    <published>2026-08-27T12:00:00.000Z</published>
    <summary>番外篇二：把 npm、Yarn、pnpm 三代包管理器放在一张图里讲透——从 Maven 类比入门 package.json 与 semver，到嵌套地狱与扁平化的来龙去脉，再到 pnpm 硬链接 + 符号链接的内容寻址存储原理，最后给出命令速查表、monorepo 实践与选型决策流程。</summary>
    <title>Vue 从零到一（番外）：npm、Yarn 与 pnpm，前端包管理器一次讲透</title>
    <updated>2026-10-12T09:40:00.691Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="Docker" scheme="https://frank-dev.site/tags/Docker/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="数据库" scheme="https://frank-dev.site/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/02-mongodb-docker-mongosh/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/02-mongodb-docker-mongosh/"/>
    <published>2026-08-27T11:00:00.000Z</published>
    <summary>用 Docker Compose 部署 MongoDB 7.x，拆解连接 URI 的结构，通过 mongosh 完成库、集合、文档的第一组操作，并用 Compass 建立可视化的数据直觉。</summary>
    <title>MongoDB 从零到一（02）：Docker 部署、mongosh 与 Compass 上手</title>
    <updated>2026-10-12T09:40:00.679Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MongoDB" scheme="https://frank-dev.site/tags/MongoDB/"/>
    <category term="NoSQL" scheme="https://frank-dev.site/tags/NoSQL/"/>
    <category term="数据库" scheme="https://frank-dev.site/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    <id>https://frank-dev.site/2026/08/27/articles/MongoDB/01-mongodb-introduction/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/MongoDB/01-mongodb-introduction/"/>
    <published>2026-08-27T10:00:00.000Z</published>
    <summary>面向熟悉 MySQL 的 Java 开发者讲清 MongoDB 的文档模型、BSON 类型体系、与关系型数据库的概念对照，以及 MySQL、MongoDB、Elasticsearch 三者的选型边界。</summary>
    <title>MongoDB 从零到一（01）：初识 MongoDB，文档数据库与选型定位</title>
    <updated>2026-10-12T09:40:00.679Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Vue" scheme="https://frank-dev.site/tags/Vue/"/>
    <category term="前端" scheme="https://frank-dev.site/tags/%E5%89%8D%E7%AB%AF/"/>
    <category term="Vite" scheme="https://frank-dev.site/tags/Vite/"/>
    <category term="Webpack" scheme="https://frank-dev.site/tags/Webpack/"/>
    <category term="工程化" scheme="https://frank-dev.site/tags/%E5%B7%A5%E7%A8%8B%E5%8C%96/"/>
    <id>https://frank-dev.site/2026/08/27/articles/Vue/09-vue-build-tools-ecosystem/</id>
    <link href="https://frank-dev.site/2026/08/27/articles/Vue/09-vue-build-tools-ecosystem/"/>
    <published>2026-08-27T10:00:00.000Z</published>
    <summary>番外篇：面向后端同学拆开前端工具链——Webpack 的 entry/loader/plugin/chunk 四大件与 Tapable 钩子，Vite 的 dev server + esbuild 预构建 + Rollup 组合拳，Babel/SWC/PostCSS/Terser 各管哪一段，以及 Rspack/Turbopack/Rolldown 这些新生代站在哪里。一张地图看清 npm run dev 背后每一个零件的职责与选型依据。</summary>
    <title>Vue 从零到一（番外）：前端构建工具全景——Vite、Webpack 与背后的&quot;零件&quot;</title>
    <updated>2026-10-12T09:40:00.691Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="MySQL" scheme="https://frank-dev.site/tags/MySQL/"/>
    <category term="Elasticsearch" scheme="https://frank-dev.site/tags/Elasticsearch/"/>
    <category term="Spring Boot" scheme="https://frank-dev.site/tags/Spring-Boot/"/>
    <category term="商品搜索" scheme="https://frank-dev.site/tags/%E5%95%86%E5%93%81%E6%90%9C%E7%B4%A2/"/>
    <id>https://frank-dev.site/2026/08/26/articles/Elasticsearch/10-elasticsearch-comprehensive-practice/</id>
    <link href="https://frank-dev.site/2026/08/26/articles/Elasticsearch/10-elasticsearch-comprehensive-practice/"/>
    <published>2026-08-26T10:40:00.000Z</published>
    <summary>以商品搜索为完整案例，从 MySQL 模型、Elasticsearch Mapping、全量与增量同步到 Spring Boot 查询接口、灰度重建和生产验收。</summary>
    <title>Elasticsearch 从零到一（10）：商品搜索综合实战</title>
    <updated>2026-10-12T09:40:00.675Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="Elasticsearch" scheme="https://frank-dev.site/tags/Elasticsearch/"/>
    <category term="集群高可用" scheme="https://frank-dev.site/tags/%E9%9B%86%E7%BE%A4%E9%AB%98%E5%8F%AF%E7%94%A8/"/>
    <category term="快照恢复" scheme="https://frank-dev.site/tags/%E5%BF%AB%E7%85%A7%E6%81%A2%E5%A4%8D/"/>
    <category term="安全运维" scheme="https://frank-dev.site/tags/%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4/"/>
    <id>https://frank-dev.site/2026/08/26/articles/Elasticsearch/09-elasticsearch-cluster-ha-security/</id>
    <link href="https://frank-dev.site/2026/08/26/articles/Elasticsearch/09-elasticsearch-cluster-ha-security/"/>
    <published>2026-08-26T10:20:00.000Z</published>
    <summary>面向 Java 开发者讲解 Elasticsearch 8.x 的节点角色、分片高可用、故障恢复、快照、TLS、认证授权、监控与上线检查。</summary>
    <title>Elasticsearch 从零到一（09）：集群高可用、快照恢复与安全运维</title>
    <updated>2026-10-12T09:40:00.675Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="Java" scheme="https://frank-dev.site/tags/Java/"/>
    <category term="Elasticsearch" scheme="https://frank-dev.site/tags/Elasticsearch/"/>
    <category term="Bulk API" scheme="https://frank-dev.site/tags/Bulk-API/"/>
    <category term="Reindex" scheme="https://frank-dev.site/tags/Reindex/"/>
    <category term="性能优化" scheme="https://frank-dev.site/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"/>
    <id>https://frank-dev.site/2026/08/26/articles/Elasticsearch/08-elasticsearch-bulk-reindex-performance/</id>
    <link href="https://frank-dev.site/2026/08/26/articles/Elasticsearch/08-elasticsearch-bulk-reindex-performance/"/>
    <published>2026-08-26T10:00:00.000Z</published>
    <summary>面向 Java 开发者系统讲解 Elasticsearch 8.x 的 Bulk 批量写入、Reindex 重建、Alias 零停机迁移与查询性能优化。</summary>
    <title>Elasticsearch 从零到一（08）：Bulk 写入、Reindex 与查询性能优化</title>
    <updated>2026-10-12T09:40:00.675Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="微服务" scheme="https://frank-dev.site/tags/%E5%BE%AE%E6%9C%8D%E5%8A%A1/"/>
    <category term="RuoYi" scheme="https://frank-dev.site/tags/RuoYi/"/>
    <category term="RuoYi-Cloud" scheme="https://frank-dev.site/tags/RuoYi-Cloud/"/>
    <category term="Spring Cloud" scheme="https://frank-dev.site/tags/Spring-Cloud/"/>
    <id>https://frank-dev.site/2026/08/25/articles/RuoYi/12-ruoyi-cloud-evolution/</id>
    <link href="https://frank-dev.site/2026/08/25/articles/RuoYi/12-ruoyi-cloud-evolution/"/>
    <published>2026-08-25T12:00:00.000Z</published>
    <summary>从 RuoYi-Vue 单体前后端分离架构出发，解析 RuoYi-Cloud 的服务拆分、Nacos、Gateway、Sentinel、Seata 及渐进式迁移策略。</summary>
    <title>RuoYi 框架从零到一 12 - 微服务架构演进</title>
    <updated>2026-10-12T09:40:00.688Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="性能优化" scheme="https://frank-dev.site/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"/>
    <category term="缓存" scheme="https://frank-dev.site/tags/%E7%BC%93%E5%AD%98/"/>
    <category term="Redis" scheme="https://frank-dev.site/tags/Redis/"/>
    <category term="RuoYi" scheme="https://frank-dev.site/tags/RuoYi/"/>
    <id>https://frank-dev.site/2026/08/25/articles/RuoYi/11-ruoyi-cache-performance/</id>
    <link href="https://frank-dev.site/2026/08/25/articles/RuoYi/11-ruoyi-cache-performance/"/>
    <published>2026-08-25T11:00:00.000Z</published>
    <summary>从 RuoYi 的 Token、字典和参数缓存出发，讲清 Redis 封装、缓存穿透、击穿、雪崩、一致性、热点 Key 以及从 SQL 到 JVM 的性能诊断方法。</summary>
    <title>RuoYi 框架从零到一 11 - 缓存与性能优化</title>
    <updated>2026-10-12T09:40:00.687Z</updated>
  </entry>
  <entry>
    <author>
      <name>Frank</name>
    </author>
    <category term="教程" scheme="https://frank-dev.site/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="MySQL" scheme="https://frank-dev.site/tags/MySQL/"/>
    <category term="Elasticsearch" scheme="https://frank-dev.site/tags/Elasticsearch/"/>
    <category term="数据同步" scheme="https://frank-dev.site/tags/%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5/"/>
    <category term="CDC" scheme="https://frank-dev.site/tags/CDC/"/>
    <category term="分布式系统" scheme="https://frank-dev.site/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/"/>
    <id>https://frank-dev.site/2026/08/25/articles/Elasticsearch/07-elasticsearch-mysql-sync/</id>
    <link href="https://frank-dev.site/2026/08/25/articles/Elasticsearch/07-elasticsearch-mysql-sync/"/>
    <published>2026-08-25T10:40:00.000Z</published>
    <summary>面向 Java 开发者设计 MySQL 到 Elasticsearch 的读模型同步，比较双写、消息队列、Binlog CDC 与定时同步，并处理幂等、删除、重试、对账、重建和最终一致性。</summary>
    <title>Elasticsearch 从零到一（07）：MySQL 数据同步、幂等与一致性设计</title>
    <updated>2026-10-12T09:40:00.675Z</updated>
  </entry>
</feed>
