<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MySQL on Elastic Code</title><link>https://my.elastic-code.com/zh/tags/mysql/</link><description>Recent content in MySQL on Elastic Code</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>© 2026 Elastic Code</copyright><lastBuildDate>Sat, 08 Nov 2025 09:32:11 +0800</lastBuildDate><atom:link href="https://my.elastic-code.com/zh/tags/mysql/index.xml" rel="self" type="application/rss+xml"/><item><title>canal 监听 MySQL Binlog 并推送 Redis 队列的增量同步方案</title><link>https://my.elastic-code.com/zh/posts/tech/canal_subscribe_mysql/</link><pubDate>Sat, 08 Nov 2025 09:32:11 +0800</pubDate><guid>https://my.elastic-code.com/zh/posts/tech/canal_subscribe_mysql/</guid><description>&lt;h1 class="relative group"&gt;基于 Canal 监听 MySQL Binlog 并推送 Redis 队列的增量同步方案
 &lt;div id="基于-canal-监听-mysql-binlog-并推送-redis-队列的增量同步方案" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%9f%ba%e4%ba%8e-canal-%e7%9b%91%e5%90%ac-mysql-binlog-%e5%b9%b6%e6%8e%a8%e9%80%81-redis-%e9%98%9f%e5%88%97%e7%9a%84%e5%a2%9e%e9%87%8f%e5%90%8c%e6%ad%a5%e6%96%b9%e6%a1%88" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;在一些业务系统中，我们经常会遇到这样的场景：主业务数据写入 MySQL 后，需要把变更通知给另一个系统处理，例如数据同步、异步补偿、缓存刷新、搜索索引更新、历史数据迁移等。&lt;/p&gt;
&lt;p&gt;最直接的做法是在业务代码里写同步逻辑，但这种方式侵入性强，而且容易因为代码路径复杂而遗漏。更通用的方案是基于 MySQL Binlog 做 CDC（Change Data Capture）：业务系统正常写数据库，独立订阅服务监听 Binlog，解析出变更事件后投递到消息队列或缓存队列，下游消费者再异步处理。&lt;/p&gt;</description></item></channel></rss>