mysql-binlog-connector-java:https://github.com/shyiko/mysql-binlog-connector-java
BinaryLogClient client = new BinaryLogClient(hostname, 3306, username, password); // 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 BinaryLogClient.EventListener() {
if(data instanceof QueryEventData){ QueryEventData d= (QueryEventData) data; System.out.println("数据库DDL操作select="+d.getSql()); } else if(data instanceof TableMapEventData){ TableMapEventData d= (TableMapEventData) data; System.out.println("数据库DDL操作="+d.getTable()); } else if(data instanceof UpdateRowsEventData){ UpdateRowsEventData d= (UpdateRowsEventData) data; System.out.println("数据库DDL操作update="+d.toString()); } else if(data instanceof WriteRowsEventData){ WriteRowsEventData d= (WriteRowsEventData) data; System.out.println("数据库DDL操作insert="+d.toString()); } else if(data instanceof DeleteRowsEventData){ DeleteRowsEventData d= (DeleteRowsEventData) data; System.out.println("数据库DDL操作delete="+d.toString()); }
阿里的canal:https://github.com/alibaba/canal
点评的puma:https://github.com/dianping/puma