我们跑起代码,紧接着我们在数据库中进行更改UPDATE操作,把法外狂徒张三改成张三1,然后再改回张三,见下图 。

文章插图
Canal成功收到了两条更新操作:

文章插图
紧接着我们模拟一个删除Cache缓存的业务,在代码中有:
/** * 秒杀下单接口删除库存缓存 */public static void deleteCache(List<Column> columns, String tableName, String schemaName) {if ("stock".equals(tableName) && "m4a_miaosha".equals(schemaName)) {AtomicInteger id = new AtomicInteger();columns.forEach((column) -> {String columnName = column.getName();String columnValue = https://www.isolves.com/it/sjk/MYSQL/2020-06-12/column.getValue();if ("id".equals(columnName)) {id.set(Integer.parseInt(columnValue));}});// TODO: 删除缓存LOGGER.info("Canal删除stock表id:[{}] 的库存缓存", id);}}「在上面的代码中,在收到m4a_miaosha.stock表的更新操作后,我们刷新库存缓存 。效果如下:」

文章插图

文章插图
简单的Canal使用就介绍到这里,剩下的发挥空间留给各位读者大大们 。
总结本文总结了Canal的基本原理和简单的使用 。
「总结如下几点:」
「希望大家多多支持我的原创技术文章公众号:后端技术漫谈,我最全的原创文章都在这里首发 。」
参考
推荐阅读
- 基于MIT协议,一个开源的Python微信公众号开发框架——WeRoBot
- mysql5.7性能提升一百倍调优宝典
- IT管理者应该了解的四项开源工具
- 免费且开源的流程图工具 Draw.io
- 在 Linux 上使用开源软件创建 SDN
- 18条MySQL优化技巧
- MySQL库表设计小技巧
- MySQL数据库教程-环境与集成开发工具
- 开源技术大神总结的7条Linux核心知识点
- 一文看懂开源许可证,能不能商用再也不抓瞎
