当前位置: 首页 > news >正文

Golang通过alibabaCanal订阅MySQLbinlog

最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。

Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监听到MySQL的数据变化。
 

启动Canal服务

QuickStart · alibaba/canal Wiki (github.com)

步骤都很简单,我们重点看一下/tmp/canal/conf/example/instance.properties里面配置文件

 Canal之所以能订阅MySQL的binlog是把自己伪装成了一个MySQL从机,主机会不停的给MySQL的从机传输binlog文件。 等于启动Canal服务的过程包含了主从复制的配置过程,主从服务的过程是告诉从机主机的账号密码

 补充

基于docker启动的canal服务,按照官方文档操作出现了问题,所以使用了普通的启动方式

Go连接Canal服务端

 Canal支持Go连接
withlin/canal-go: Alibaba mysql database binlog incremental subscription & consumer components Canal's golang client[阿里巴巴mysql数据库binlog的增量订阅&消费组件 Canal 的 go 客户端 ] https://github.com/alibaba/canalhttps://github.com/withlin/canal-go

 官方文档上面没有任何说明,我们需要自己翻一下代码

 把代码拷贝下来即可

关于上面配置信息,具体可以参考Go操作阿里开源的框架Canal用于MySQL实时binlog同步 - 简书 (jianshu.com)

还有最最重要的一步,开启阿里云服务器安全组11111端口

监听数据变化

http://www.lryc.cn/news/120595.html

相关文章:

  • Python flask-restful 框架讲解
  • MySQL_约束、多表关系
  • 在Qt中使用LoadLibrary无法加载DLL
  • 如何将区块链新闻稿发布到海外媒体?
  • 基于 CentOS 7 构建 LVS-DR 群集。
  • 防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办?
  • 【Kubernetes】Kubernetes之Pod详解
  • 电商与客服系统完美对接指南源码-无缝对接唯一客服系统-提升电商客户体验...
  • 新知识:Monkey 改进版之 App Crawler
  • 黑马头条项目学习--Day3: 自媒体文章发布
  • 使用frp实现内网穿透
  • 安装 opendr 踩坑记
  • 各地区-各行业法人单位、区划数63个指标(2010-2022年)
  • W5500-EVB-PICO作为TCP Client 进行数据回环测试(五)
  • web前端面试--递归(斐波那契数列)
  • Vue3 Props组件简单应用(父组件获取子组件数据)
  • Mybatis查询
  • 如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享
  • [数据集][目标检测]PCB板缺陷目标检测数据集VOC格式693张6类别
  • Linux 安装中文输入法
  • redisson
  • 源码分析——HashMap(JDK1.8)源码+底层数据结构分析
  • 企业举办活动邀请媒体的意义和重要性
  • 从零开始学python(十六)爬虫集群部署
  • flutter
  • iOS 开发-编译第三方库 openssl及curl
  • 运维监控学习笔记1
  • 由于找不到vcruntime140.dll,无法继续执行代码,三种修复方法
  • 【FPGA零基础学习之旅#10】按键消抖模块设计与验证(一段式状态机实现)
  • 【EI复现】基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(Matlab代码实现)