canal 数据同步
文章平均质量分 57
煎蛋的梦
快速反应、敏捷、完美、乐于分享
展开
-
canal 启动分析
在对canal 一切准备妥当后,然后 sh startup.sh 后,流程图如下: 应该是这样的啦! 那源码是怎么得呢? 这个是我源码整理的理解!勿喷! 大伙如果一开始开源码的话,如果忽略了脚本,那就不好了!就不知道配置文件怎么加载的啦!且看脚本是怎么定义配置文件是如何加载的吧! 可能细心的伙伴会观察到 配置文件也有可能从 CLASSPATH: 路径下加载,因为 canal 可以独原创 2016-05-03 23:59:32 · 3090 阅读 · 0 评论 -
数据同步 canal
在公司负责中间件一段时间了!对于作为应届生的我,非常荣幸!谢谢!下面将全面分析 canal 运行的内部机制!同时,我整理的笔记,将放在 GitHub 上面!大概一个月之后吧!有点乱!感谢开源!还是阿里好!哈哈哈!!!原创 2016-05-04 00:14:21 · 765 阅读 · 0 评论 -
canal client -->canal server 的交互过程
canal 是阿里开源的 MySQL 数据同步工具,漂亮!赞一个! 客户端的代码: 服务端的解码过程,FixedHeaderFrameDecoder 这个类负责解码过程: 为什么是这样设计的呢?是不是和我们平时使用 Netty 的编解码器不太一样呢?主要有以下几点原因: 1、canal client 是轻量级的 Java NIO 方式实现,而 canal server 是 Netty 方式实原创 2016-05-14 22:55:43 · 4137 阅读 · 0 评论 -
数据同步canal 疑点——内存
canal 内存实现的方式是环形数组,这个是非常高效的,可以减少内存分配,在堆栈中分配内存挺耗时间的。何况,如果不使用环形数组的话的,消息有点折扣,很多开源的项目有实现了类似的环形数组。 在公司的某一段时间,在日常批量更改时间,发现 canal 挂掉了,当初得到的原因是:内存消耗完毕,被 Linux 干掉了 canal 进程了。可以在 /var/logs 目录下,找找相应的文件就知道原创 2016-09-11 16:55:53 · 3649 阅读 · 2 评论 -
mysql binlog 常用的命令
因为我在公司里面负责数据同步组件的相关工作,包括构建异地多活的工作,所以,需要先了解一下 MySQL binlog 的相关知识点。由于看过了好几遍了《高可用 MySQL 》 这本经典的书籍了,但还是不能记住一些 binlog 日志的命令,所以,这段时间,先整理一下。把旧债先还了。以后还会更新的啦!FLUSH LOGS 该命令强制轮换二进制日志,从而得到一个完整的 二进制日志文件。因为,每个二进原创 2016-08-24 22:50:37 · 611 阅读 · 0 评论 -
canal 数据同步的一个重要点
公司里边使用了 canal 这个开源产品,基于 mysql binlog 日志来抓取数据库的变更。然后把变更的数据通过 Rocketmq 发送到 solr 集群和大数据中心。但有一个疑问,基于 row 模式的 binlog 会不会记录变更前、变更后的值呢?答案:会!INSERT:只有变更后的值。 UPDATE:包含了变更前、变更后的值。 DELETE:变更前的值。哈哈哈!心头的疑问终于不再模糊啦原创 2016-08-24 22:55:42 · 2696 阅读 · 0 评论