工具篇--5 WIndow/Linux--Mysql binLog日志监听Canal安装

news2024/12/28 19:01:59

前言:作为一个中间件canal,可以实时的监听到mysql 中表结构及数据的变化, 项目中只需要接入canal ,不需要我们在业务中进行aop 或者接口的编写就可以及时的收到数据的变化。

1 介绍:

Canal是阿里巴巴开源的一款基于MySQL数据库的增量数据订阅和消费组件,能够把MySQL的binlog日志解析,转换成多种类型的事件回调给应用消费或同步到数据存储或搜索引擎等其他数据终端。它提供了类似数据流的方式,对数据进行持续性同步和协作,大幅度提升了数据处理的效率。

注意:
canal server是一个基于Java编写的应用程序,需要在JVM上运行。canal server基于Netty作为网络通信框架,并依赖于RocketMQ(或者其他消息队列)来实现消息的发布和订阅机制。因此,在使用canal server之前,需要首先安装和配置Java环境。

从canal server的官方文档可以看到,canal server所依赖的Java版本为JDK1.8或更高版本。在下载并安装JDK之后,可以通过在控制台输入java -version来检查Java环境是否已经安装成功。此外,为了保证canal server的性能和稳定性,建议采用优化后的JVM参数进行配置。

总之,canal server是基于Java开发的,需要在JVM上运行,因此需要先安装和配置Java环境。在使用canal server之前,建议对JVM参数进行合理的优化,以获得更好的性能和稳定性。

2 window 安装:

2.1 canal 实现原理:
既然canal 是服务化的,所以在使用之前搭建canal 的服务,至于为什么要搭建canal 服务 ,可以从canal 的工作原理中得到答案;
在这里插入图片描述
从上图可以得知:

  • canal 的实现是将自己伪装成mysql 的 从节点 ;
  • 先发送请求给到主节点,主节点在有数据变化时就可以推送数据给到 从节点;
  • 从节点接到数据后先写到log 中,然后在由canal 中其它的线程对log 数据进行解析;
  • 解析的数据就可以提供给消费者进行消费;

从它的原理我们可以知道一下几点:

  • canal 服务是需要连接到mysql 的一个主/从 节点,以便于接收到binlog 的日志;
  • canal 可以解析binlog 然后自由的完成其它的操作,如 转给消费者进行数据的消费;
  • canal 作为一个服务,为了保证其高可用的特性,肯定也是需要集群的;

所以我们可以得到下面的图:canal 可以作为中转站将消息完成中转;
在这里插入图片描述
2.2 既然是基于mysql 的binlog 实现,显然需要先打开mysql 的binlog:
开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下:

[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

配置完成记得重启Mysql的服务;可以用下面命令检查是否开启了binlog,ON 为打开:

show variables like 'log_bin';

在这里插入图片描述

2.3 在Mysql 中创建一个用户用于canal 连接使用:

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

其中:

  • USER canal 用户名为 canal ;
  • DENTIFIED BY ‘canal’ 密码为canal;
  • GRANT 为刚才创建的用户赋予权限;
  • FLUSH 进行下权限的刷新操作;

2.4 通过下面的地址,下载一个官方已经为我们封装好的canal 服务,这里以1.1.6 版本为例:
https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz

由于网络原因,可能有些人这个地址无法打开,可以通过下面的网盘进行下载:
https://pan.baidu.com/disk/main?errmsg=Auth+Login+Params+Not+Corret&errno=2&ssnerror=0#/index?category=all&path=%2Fcsdn%2Ftool%2Fcanal

下载之后进行解压,解压后的目录结果如下:
在这里插入图片描述

这里简单对目录进行下说明:

  • bin 脚本执行,window 和linux 的脚本命令都在这里,包括启动,停止,重启,通过名字还是非常清楚的,其中window 需要执行的就是 startup.bat ;
    在这里插入图片描述
  • conf 为配置文件,其中canal.properties 为canal 系统级别的配置文件;
    在这里插入图片描述
  • example 目录为官网给出的一个示例目录,其中instance.properties 为example 的配置文件:
    在这里插入图片描述
    2.5 canal 参数配置:
    2.5.1 修改canal.properties 系统级别的配置:
    example只是官网给的示例,需要增加我们自己的数据库实例
canal.destinations = example,你的数据实例名称

实例名称对应canal 要连接的数据库名称,如果要监听多个,则以英文的逗号进行分隔:
如: canal.destinations = example,biglog,bluegrass
在这里插入图片描述
2.5.2 通过bin/startup.bat 先启动下,此步骤的目的在与让canal 可用帮我们生成我们刚才在canal.destinations 定义的数据库实例目录,及其目录下的一些文件:
在这里插入图片描述
如果在canal.destinations 定义了多个数据库实例,则此时会生成多个实例 目录;
2.5.3 从example 目录下拷贝一个instance.properties 到canal 帮我们生成的数据库实例目录下:
instance.properties 文件是改实例的配置文件,其中我们需要修改的是,改实例需要连接的数据库地址,及其用户和密码:

# position info 
# mysql 连接地址必改
canal.instance.master.address=localhost:3406
# mysql 连接用户名和密码 必改 这里可以使用2.3 步骤创建的用户
canal.instance.dbUsername=root
canal.instance.dbPassword=123

2.5.4 配置完成后 重新启动canal 服务;
通过日志查看启动情况:
logs/canal/canal.log:
在这里插入图片描述
logs/数据库实例/数据库实例.log 查看改实例是否启动成功:
在这里插入图片描述

至此canal 服务启动完成;如果需要在linux 中运行canal 服务,只需要执行startup.sh 启动,stop.sh 停止,其它的操作和window 基本相同;

3 参考:

3.1 canal 服务window 安装官网教程;
3.2 canal 服务参数介绍;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/652335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

想要用好ChatGPT,首先得学会用提示词!

用好ChatGPT,可以辅助学习~ 期末季,一年中体验过最多地区时差的一段时期,懂的都懂😲 放下essay刷个小红薯也都是“赶due病友”…几周内5-6个essay ddl的经历相信不少同学都深有体会。 而今年的一大不同就是有了“哆啦C梦”——…

PostgreSQL行转列

管理拓展 启用拓展 -- 启用拓展 create extension tablefunc; --tablefunc扩展模块包含一系列返回记录表的函数。 create extension "uuid-ossp";--uuid扩展函数拓展启动后,可以在public空间下查看到crosstab函数 卸载函数 drop extension tablefunc…

信创办公–基于WPS的PPT最佳实践系列 (使用母版进行有效设计)

信创办公–基于WPS的PPT最佳实践系列 (使用母版进行有效设计) 目录 应用背景相关知识操作步骤1、认识母版2、在每页幻灯片底部添加logo图片3、第一张幻灯片和最后一张幻灯片出现logo图片,其他页面不出现4、除了封面封底之外,其他页…

硬件速攻-ATK1218正点原子GPS模块

效果演示(注意室内是没有数据) 模块实物图与接线方法 SPP 可不接(这个连到了模块上的灯) RXD 接单片机TXD TXD 接单片机串口RXD GND 接单片机GND VCC接单片机5V IPEX一定要接送的天线 而且天线要放到室外 再次说明提醒 精简代码与说明 如果你只想获取经纬度而已 你可用屏…

原来C语言计算的数只要低过4个字节就要整型提升!

C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换被称为整型提升。 比如: char a 3; char b 127; char c a b; printf("%d&q…

Vue中如何进行地图轨迹展示与追踪?

Vue中如何进行地图轨迹展示与追踪? 随着移动互联网技术的快速发展,位置数据的应用越来越广泛。在许多应用程序中,地图轨迹展示和追踪功能已经成为了基本功能之一。在Vue中,我们可以使用许多不同的地图API和库来实现这些功能。本文…

ATTCK v13版本战术介绍——凭证访问(三)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权、防御规避战术,本期我们为大家介绍ATT&CK 14项战术中凭证访问战术第13-17种子技术,后续会介绍凭证访问其他子技术,敬请关注。 二、ATT&…

智能图像处理竟然能做出这种神奇的事

前言 大家都知道,搞论文的时候很多的时候都需要数据来做支撑,对应的我就需要在很多期刊中获取对应的Figure,但是获取很麻烦,就算拍摄出来,放在论文里面效果也不是很好,而且歪七扭八的很碍眼。在这种事情上就…

5.3图的综合应用算法(最小生成树、最短路径生成)

一.最小生成树算法 1.概念(Minimum-Spanning-Tree)MST 生成树:针对于连通图,包含全部顶点,去掉一条边后不连通,加一条边形成环 最小生成树:带权连通无向图,边的权值之和最小的生成树(MST) 2.…

关于前端跨域的结局方案

前言 跨域产生的原因 浏览期的安全策略。常见的解决跨域的方法&#xff1a; 1.JONSP 利用<script>标签的src可以发起跨域请求,大致过程&#xff1a;前端的方法名传到地址上callbackxx 缺点&#xff1a;只能get方法2.domain.iframe、domain.hash、domain.parent等 上述这…

VUE项目无法启动NODE版本与NODE-SASS、SASS-LOADER版本不兼容

系列文章目录 文章目录 系列文章目录错误分析一、版本比对二、解决方案总结 错误分析 在VUE项目开发中&#xff0c;我们经常会遇到报错&#xff1a; Node Sass version 7.0.1 is incompatible with ^4.0.0。 网上解决方案也千奇百怪&#xff0c;最终操作下来&#xff0c;也是…

首添机密计算创新成果!龙蜥首获 ACM SIGSOFT 杰出论文奖

近日&#xff0c;软件工程领域的全球旗舰级会议-软件工程大会 ICSE 在澳大利亚墨尔本市召开&#xff0c;龙蜥社区云原生机密计算 SIG 核心成员&#xff08;阿里云JVM 团队&#xff09;在 Java 机密计算方面的研究成果入选了 ICSE2023&#xff0c;并且以该会议今年唯一的 All Fi…

STM32F407之SD卡读数据介绍

1&#xff0c;SD卡基础知识 SD卡&#xff08;Secure Digital Memory Card&#xff09;即&#xff1a;安全数字存储卡&#xff0c;它是在MMC的基础上发展而来&#xff0c;作为存储器件广泛应用于电子产品中。 1.1 SD卡有SDIO和SPI两种传输方式&#xff0c;具体信号定义如下&…

DSSAT模型: 遥感数据与作物生长模型同化及在作物长势监测与估产中的应用

查看原文>>>遥感数据与作物生长模型同化及在作物长势监测与估产中的应用 基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不…

华为开源自研AI框架昇思MindSpore应用案例:SSD目标检测

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上&#xff0c;SSD对于输入尺寸300x300的网络&#xf…

基于html+css的图展示130

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

正交标注有利于无监督医学图像分割

文章目录 Orthogonal Annotation Benefits Barely-supervised Medical Image Segmentation摘要本文方法Registration ModuleLabel MixingDense-Sparse Co-Training 实验结果 Orthogonal Annotation Benefits Barely-supervised Medical Image Segmentation 摘要 半监督学习的…

【DRAM存储器二】Sense Amplifier

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《Memory Systems - Cache, DRAM, Disk》 目录 前言 感应…

【数据管理架构】什么是 OLAP?

作为数据仓库实施的核心组件&#xff0c;OLAP 为商业智能 (BI) 和决策支持应用程序提供快速、灵活的多维数据分析。 什么是 OLAP&#xff1f; OLAP&#xff08;用于在线分析处理&#xff09;是一种软件&#xff0c;用于对来自数据仓库、数据集市或其他一些统一的集中式数据存储…

Sentieon | 每周文献-Population Sequencing-第一期

群体基因组系列文章-1 标题&#xff08;英文&#xff09;&#xff1a;The Impact of ACEs on BMI: An Investigation of the Genotype-Environment Effects of BMI 标题&#xff08;中文&#xff09;&#xff1a;ACEs对BMI的影响&#xff1a;探究BMI的基因型-环境效应 发表期刊…