最近发现一个挺不错的框架mysql-binlog-connector-java,可以实时监控binlog的变化。

首先检查mysql的binlog是否开启,在开启的情况下:

引入依赖

  <dependency>
<groupId>com.github.shyiko</groupId>
<artifactId>mysql-binlog-connector-java</artifactId>
<version>0.18.1</version>
</dependency>

 然后使用如下代码可以测试:        

public class App
{
public static void main( String[] args ) throws IOException
{
BinaryLogClient client = new BinaryLogClient("xxx", 3306, "xxx", "xxx");
EventDeserializer eventDeserializer = new EventDeserializer();
eventDeserializer.setCompatibilityMode(
EventDeserializer.CompatibilityMode.DATE_AND_TIME_AS_LONG,
EventDeserializer.CompatibilityMode.CHAR_AND_BINARY_AS_BYTE_ARRAY
);
client.setEventDeserializer(eventDeserializer);
client.registerEventListener(new EventListener() { @Override
public void onEvent(Event event) {
System.out.println(event);
EventData data = event.getData(); if (data instanceof UpdateRowsEventData) {
System.out.println("Update--------------");
System.out.println(data.toString());
} else if (data instanceof WriteRowsEventData) {
System.out.println("Write---------------");
System.out.println(data.toString());
} else if (data instanceof DeleteRowsEventData) {
System.out.println("Delete--------------");
System.out.println(data.toString());
}
}
});
client.connect();
}
}                                                                                                                                                 实际在使用的时候,这个框架提供列名称表名称不太好用,这个时候需要https://github.com/ngocdaothanh/mydit ,这个是一个将mysql同步到mongdb的,其中一些样例代码可以很方便的获取mysql的元数据。

ARTS打卡计划第二周-Tips-mysql-binlog-connector-java的使用的更多相关文章

  1. ARTS打卡计划第二周-Review

    本周review的文章是:https://medium.com/@hakibenita/optimizing-django-admin-paginator-53c4eb6bfca3 改篇文章的题目是: ...

  2. ARTS打卡计划第二周

    Algorithms: https://leetcode-cn.com/problems/3sum/ 算法是先排序,然后按照两个数和两边逼中,考虑去重. Review: https://www.inf ...

  3. ARTS打卡计划第二周-Share-使用java注解对方法计时

    现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...

  4. ARTS打卡计划第二周-Algorithm

    665. 非递减数列  https://leetcode-cn.com/problems/non-decreasing-array/ 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元 ...

  5. ARTS打卡计划第九周

    Algorithms: https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/ 合并两个链表 Review:  “Pu ...

  6. ARTS打卡计划第一周

    Algorithms: https://leetcode-cn.com/problems/two-sum/ Review: https://www.infoq.cn/article/EafgGJEtq ...

  7. ARTS打卡计划第一周-Share-系统字典模块的设计

    在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段.  本篇文 ...

  8. ARTS打卡计划第一周-Tips-ControllerAdvice的使用

    通常在开发具体项目过程中我们可能会面临如下问题: 统一所有的json返回结果 统一处理所有controller中的异常,并且给不同异常不同的返回状态值 统一对返回的接口做数据校验或者加密,防止篡改 在 ...

  9. ARTS打卡计划第一周-Review

    本周分享的文章来自于medium的 Testing Best Practices for Java + Spring Apps 这个文章主要讲的是java测试的一些最佳实践 1.避免函数返回void, ...

随机推荐

  1. WinEdt和LaTeX的简介

    LaTex 是一款Tex软件, 是一款专业的 pdf 排版软件,功能强大,上手简单,是老板折磨新同学的一件非常好用的利器,能让你仅用两个晚上就达到肾虚的效果. LaTex的软件由MikTex以及编译器 ...

  2. C#使用Linq to Sqlite

    1.首先到Nuget命令行运行: Install-Package linq2db.SQLite 2.在项目下添加一个文件夹:DataModels,用以存放数据库相关的文件,显得规整 3.找到CopyM ...

  3. vscode setting

    { "files.autoSave": "onFocusChange", "window.openFilesInNewWindow": tr ...

  4. React 生命周期及使用场景

    对比版本:16.4.0 VS 16.3.0 VS 16.2.0 发现最近几次React版本更改比较大,在为17.0的大版本作准备.总结了一下React生命周期函数的变化. 综合对比图如下: 各版本分别 ...

  5. solr的基础使用

    查询运算符 例如:http://localhost:8984/solr/mycore/select?q=*:* :  指定字段查指定值,如返回所有值q=*:* ?  匹配单个字符, 例如: q=tit ...

  6. HUE安装过程中的一些坑

    1. gcc: error: krb5-config:: No such file or directory 执行安装krb5-devel yum provides krb5-config 得到提示: ...

  7. keepalived+nginx实现niginx高可用,宕机自动重启

    nginx作为http服务器,在集群中 用于接受客户单发送过来的请求,并且根据配置的策略将请求 转发给具体的哪台服务器 如果在nginx服务器使用轮询策略处理客户端的请求,出现了tomcat 宕机的情 ...

  8. Ubuntu 16.04将左侧面板置于底部

    ctrl+alt+t打开终端,输入: gsettings set com.canonical.Unity.Launcher launcher-position Bottom 有Bottom和Left两 ...

  9. Linux(CentOS)用户修改密码有效期(chage命令)

    Linux设置用户密码的有效期限 解决: 先查看密码过期时间,现在是90天 1 2 3 4 5 6 7 8 [root@01 ~]# chage -l testuser Last password c ...

  10. 软件测试:2.Two Faulty Programs

    软件测试:2.Two Faulty Programs Questions: 1.Identify the fault; 2.If possible, identify a test case that ...