数据同步的解决方案Canal

Canal实现数据同步的原理:

1.是根据模拟mysql slave的主从交互协议,伪装自己是mysql slave,向mysql master发送dump请求。

2.mysql master收到dump请求后,开始推送 binary log给canal

3.canal解析binary log对象(原始byte流)处理。

mysql开启binlog模式

 (1)查看当前mysql是否开启binlog模式。

SHOW VARIABLES LIKE '%log_bin%'

如果log_bin的值为OFF是未开启,为ON是已开启。

(2)修改/etc/my.cnf 需要开启binlog模式。

[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1

修改完成之后,重启mysqld的服务。

(3) 进入mysql

mysql -h localhost -u root -p

(4)创建账号 用于测试使用

使用root账号创建用户并授予权限

create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

canal服务端安装配置

(1)下载地址canal

https://github.com/alibaba/canal/releases/tag/canal-1.0.24

(2)下载之后 上传到linux系统中,解压缩到指定的目录/usr/local/canal

解压缩之后的目录结构如下:

 

(3)修改 exmaple下的实例配置

vi conf/example/instance.properties

 

修改如图所示的几个参数。

一定要注释掉下面这个参数,这样就会扫描全库

#canal.instance.defaultDatabaseName =

(3)启动服务:

[root@localhost canal]# ./bin/startup.sh

(4)查看日志:

cat /usr/local/canal/logs/canal/canal.log

 

这样就表示启动成功了。

 

SpringBoot集成Canal

我们这里使用的一个开源的项目,它实现了springboot与canal的集成。比原生的canal更加优雅。

https://github.com/chenqian56131/spring-boot-starter-canal

下载后,本地进入

cmd进入目录,mvn  insrall,加载pom坐标。

Springboot项目使用

监听器类实现

 

自定义监听

 

 

 

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

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

相关文章

复习……方法的重载

Lesson Six                         2018-04-20  00:48:57 1.一个项目或工程,一定是由一个一个类构成的。2.类是抽象的,比如建筑图纸。而具体的建筑,是根据图纸建设成的,实际上就是类的实例化3.完成一…

对Kafka的总结

定位:kafka是一款分布式,高吞吐量,基于发布/订阅的消息中间件。 核心组件: broker:kafka服务器,负责消息的存储和转发。 topic:主题,消息的类别,kafka按照topic分类消…

Ribbon中的负载均衡算法实现

Ribbon响应时间权重负载均衡算法,假设有3台服务器A,B,C响应时间为10,40,80ms。 算法公式:weighsofar 总响应时长- 本服务器平均响应时长 A:0130-10120 B:120130-40210 C:210130-80260 将3个轮询数值放…

maven私服配置

环境: eclipse 、maven、nexus。 1、配置setting.xml文件 1.1、配置本地仓库位置:文件中,存在节点 “localRepository”,默认是注释,也就是本地仓库使用默认地址“Default: ~/.m2/repository”,一般为系统…

NAT模式下虚拟机与主机网络关系配置

哎,又是烦人的网络关系耽误了好长时间。 当前情况是使用NAT模式使得主机与虚拟机与外网连通 具体配置如下: 这是VM上配置 如下是虚拟机ip配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 vi /etc/resolv.conf service network restart

python学习笔记-day6-函数的延续【汉字转拼音模块,函数返回多个值,匿名函数,列表生成式,generator生成器,三元运算符】...

继续来说函数的后续知识点,主要是函数返回多个值,匿名函数,三元运算符,算是比较小的知识点。 一、汉字转拼音模的使用 1、安装模块 #install xpinyin 2、如果使用 结果: 二、函数返回多个值 1、python的函数可以同时返…

EasyExcel项目使用

2.0.5版本做了很大改变&#xff0c;记录2.1.6的所使用的工具类及方法 其实持续对easyexcel的git进行关注是最方便的&#xff0c;上面也有完整的demo以及工具类等等 1.easyExcel的pom坐标 <!-- easyexcel --><dependency><groupId>com.alibaba</groupId&g…

c# vs2010 excel 上传oracle数据

excel 数据表上传到oracle数据库。过程例如以下&#xff1a; 1、打开本地excel文件 2、用OleDb连接excel文件 3、将来excel的数据读取到dataset中 4、把dataset 中数据insert到oracle中对应的表中 以下截图说明&#xff1a; 建立项目文件。非常easy。就是建立普通的winform项目…

Nacos配置文件覆盖问题

近期新项目上cloud alibaba架构 用的注册和配置中心就是用的nacos Nacos作为配置中心给我的感觉也是不是很好用&#xff0c;大概配置中心都不是很好用吧&#xff0c;可能用多了会好点 首先说一下遇到的问题&#xff0c; nacos有几个范围性的概念 我就不说了 1.首先是命名空…

leetCode题解之Reshape the Matrix

1、题目描述 2、分析 使用了一个队列。 3、代码 1 vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {2 3 if( nums.size() * nums[0].size() ! r * c )4 return nums;5 vecto…

515Nod 1126 求递推序列的第n项【矩阵快速幂】

有一个序列是这样定义的&#xff1a;f(1) 1, f(2) 1, f(n) (A * f(n - 1) B * f(n - 2)) mod 7.给出A&#xff0c;B和N&#xff0c;求f(n)的值。Input输入3个数&#xff1a;A,B,N。数字之间用空格分割。(-10000 < A, B < 10000, 1 < N < 10^9) Output输出f(n)的…

特殊表情存数据库处理

开发途中遇到评价的功能&#xff0c;需要存入表情符号比如&#xff1a; 以及这种 存入数据库的时候会抛出异常&#xff0c;\x86\啥的 百度解决办法是 数据库改utf8mb4 但是测试改表的字符集并没有用&#xff0c; 然后我也没敢改库的字符集仍然使用utf8 我的解决办法是代码层…

转 【MQTT】在Windows下搭建MQTT服务器

MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议&#xff0c;设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。该协议的特点有&#xff1a; 使用发布/订阅消息模式&#xff0c;提供一对多的消息发布&#xff0c;解除应用程序耦合。…

记录一次StackOverflowError问题

StackOverflowError Idea启动一直抛出StackOverflowError栈溢出&#xff0c;大概率是跟刚写的代码相关 public class WebServiceConfig {private static WebServiceConfig cfg new WebServiceConfig();// Web服务的URLprivate String address;// Web服务接口private Class s…

多数据源处理-苞米豆-dynamic

微服务项目虽然每个服务可以单独使用一个库&#xff0c;但是某些特定服务&#xff0c;如调度中心服务&#xff0c;定时任务等&#xff0c;如果还是使用rpc或者fegin频繁进行远程调用&#xff0c;总感觉不是很合适 所以对单服务进行了多数据源处理 使用的是苞米豆的 dynamic-d…

Druid的外网访问异常

本地启动访问无异常&#xff0c;部署至Linux服务器后无法访问 #合并多个DruidDataSource的监控数据use-global-data-source-stat: truestat-view-servlet:login-username: adminlogin-password: adminreset-enable: falseurl-pattern: /druid/*# 添加IP白名单allow: "&quo…

Linux项目第一次访问非常慢,后来很快的异常

最近项目本地访问和测试服务器访问都没出现访问很慢的问题。 近期要上生产部署&#xff0c;所以对生产环境的组件及各服务进行了部署&#xff0c;部署完成后进行测试发现请求耗时异常 比如一个订单查询请求&#xff0c;第一次请求耗时5m 或者15s 而且很有规律&#xff0c;不多…

spring注解大全

【转载】https://www.cnblogs.com/zxf330301/articles/6559210.html spring component的作用 1、controller 控制器&#xff08;注入服务&#xff09; 2、service 服务&#xff08;注入dao&#xff09; 3、repository dao&#xff08;实现dao访问&#xff09; 4、component &am…

Flink1.12.0使用过程中遇到的异常

1.Record has Long.MIN_VALUE timestamp ( no timestamp marker). Is the time characteristic set to ProcessingTime, or did you forget to call DataStream.assignTimestampsAndWatermarks(...)? 解决办法&#xff1a; 时间窗口事件选择此方法&#xff0c;Time导包也需要…

多个字段条件相同进行分组并过滤拼装SQL

select posts,term,user_name,GROUP_CONCAT(put_department) put_dept from hrbp_info group by posts,term,user_name having count(*)>1