模拟mysql的主从备份读取bin-log文件的机制,阿里开源项目,实现对mysq的日志文件的解析;

搭建步骤:

1.开启mysql的binlog功能,并配置binlog模式为row

[mysqld]

log-bin=mysql-bin #添加这一行就ok

binlog-format=ROW #选择row模式

server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

2.在mysql中 配置canal数据库管理用户,配置相应权限(repication权限)

CREATE USER canal IDENTIFIED BY 'canal';

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;

FLUSH PRIVILEGES;

4.解压,修改配置文件

mysql serverId,改成唯一的

vim conf/example/instance.properties

canal.instance.mysql.slaveId = 129

position info,需要改成自己的数据库信息

canal.instance.master.address=192.168.21.134:3306

username/password,需要改成自己的数据库信息

canal.instance.dbUsername=canal

canal.instance.dbPassword=canal

canal.instance.defaultDatabaseName=test  指定数据库

canal.instance.connectionCharset=UTF-8

table regex

canal.instance.filter.regex=.*\\..*

5、修改 conf/canal.properties 文件

canal.ip 改成canal所在机器的ip地址,避免无谓的问题 canal.id= 128

canal.ip=192.168.21.134:

canal.port= 11111

启动

bin 下的startup脚本

查看日志 example 下

运行canal-client实例:

添加pom依赖:

com.alibaba.otter

canal.client

1.0.12

import com.alibaba.otter.canal.client.CanalConnector;

import com.alibaba.otter.canal.client.CanalConnectors;

import com.alibaba.otter.canal.protocol.Message;

import java.net.InetSocketAddress;

/**

* @ClassName Demo

* @Description TODO

* @Author liang

* @Date 2018\10\9 0009 10:25

* @Version 1.0

**/

public class Demo {

public static void main(String [] args)throws InterruptedException {

CanalConnector connector = CanalConnectors.newSingleConnector(

new InetSocketAddress("192.168.26.134",11111),"example","","");

connector.connect();

connector.subscribe(".*\\..*");

while (true) {

Message message = connector.getWithoutAck(100);

long batchId = message.getId();

System.out.println(batchId);

if (batchId == -1 || message.getEntries().isEmpty()) {

Thread.sleep(3000);

}else {

System.out.println(message.getEntries());

connector.ack(batchId);

}

}

}

}

mysql 开源订阅模式_Canal(增量数据订阅与消费 )快速配置相关推荐

  1. 开源基于Canal的开源增量数据订阅消费中间件

    canal 是阿里巴巴开源的一款基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 我开发的这个CanalSync项目 https://gith ...

  2. 谈谈对 Canal( 增量数据订阅与消费 )的理解--大数据平台技术栈系列(3)

    之前说了,大数据平台技术栈 (可点击查看),今天就来说说其中的Cannal 来源:朱小厮, blog.csdn.net/u013256816/article/details/52475190 概述 c ...

  3. 谈谈对Canal( 增量数据订阅与消费 )的理解

    原文出处: 朱小厮 概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 起源:早期 ...

  4. 谈谈对Canal(增量数据订阅与消费)的理解

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  5. 神州优车开源业界领先的增量数据同步中间件——DataLink

    项目介绍 名称: DataLink['deitə liŋk] 译意: 数据链路,数据(自动)传输器 语言: 纯java开发(JDK1.8+) 定位: 满足各种异构数据源之间的实时增量同步,一个分布式. ...

  6. 数据传输服务 DTS > 产品简介 > 功能特性 > 数据订阅(新版)

    数据订阅(新版) 更新时间:2020-08-26 15:35:45 编辑我的收藏 本页目录 优惠活动 功能特性 消费组介绍 支持订阅的数据库类型和版本 支持的语言 支持的数据类型和订阅对象 数据订阅通 ...

  7. 数据传输服务 DTS > 产品简介 > 功能特性 > 数据订阅(旧版)

    数据订阅(旧版) 更新时间:2020-07-14 11:16:50 编辑我的收藏 本页目录 支持订阅的实例类型 订阅对象 订阅通道 高级特性 实时数据订阅功能旨在帮助用户获取RDS MySQL.DRD ...

  8. 设计模式-发布订阅模式

    这段时间在看vue的双向绑定原理,知道了vue的核心三大件:Observer, Complie, Watcher. Observer用于监听属性的变化,如有变动就通知 Watcher. Compile ...

  9. (需求实战_进阶_06)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试

    背景: 为了减轻服务器的压力,现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求,项目的代码属于线上生产代码,直接用于生产即可! 此项目采用MQ发送消息模式为:订阅模式,如果对Ra ...

最新文章

  1. sqlplusw下登录sys账户
  2. 127.0.0.1和0.0.0.0地址的区别
  3. 完美解释了递归,哈哈哈哈
  4. 0x04.基本算法 — 二分和三分
  5. Python学习之关键要素
  6. php svn up,php中执行svn update问题
  7. MSSQL SERVER 2005 数学函数
  8. android设计招式之美,麦可网Android设计招式之美
  9. HTML5中Web Worker技术的使用实例
  10. 43 FI配置-财务会计-固定资产-一般评估-定义折旧范围
  11. NodeJS管理利器 - pm2常用命令
  12. UVA148 ZOJ1166 Anagram checker【DFS】
  13. 自定义View之HenCoder学习笔记
  14. devcpp 的各种快捷键
  15. Ubuntu 安装 OpenCV(亲测有效)
  16. Windows10下取消五笔输入法Shift+Space全角半角切换
  17. 如何把网站从万网转到百度的服务器,百度域名服务上线“域名转入”功能 附转入教程...
  18. python自然语言_Python自然语言处理 - 随笔分类 - 牛皮糖NewPtone - 博客园
  19. 达人评测 酷睿i7 1195g7和i7 1260p对比选哪个
  20. git clone报错:repository ‘xxxxxxxxx’does not exist

热门文章

  1. 【Elasticsearch】es 各种 日志 慢日志 慢查询
  2. 【Flink】Flink打包Could not resolve dependencies flink-statebackend-rocksdb_2.11:jar:1.9.1
  3. 【hadoop】ipc.Client: Retrying connect to server: xxx:8020. Already tried 37 time(s) RetryPolicy[Multi
  4. mac下ssh 报错:localhost: ssh: connect to host localhost port 22: Connection refused
  5. Kylin 2.6.0JDBC方式访问
  6. Java中含有泛型的 JSON 反序列化问题
  7. leetcode题解3-无重复字符的最长子串
  8. js 跳转到 百度指定地址定位点
  9. 【转】工作站和服务器的区别
  10. 由系统调用想起的。。。