Clone or download
Pull request Compare This branch is 123 commits ahead of whitesock:master.
Permalink
Failed to load latest commit information.
.settings 1.0.6 May 8, 2014
doc 1.0.6 May 8, 2014
releases 1.0.7 May 12, 2014
src Fixes whitespace with <space> instead of tab Sep 28, 2016
.classpath fix typos Feb 20, 2015
.gitignore 1.0.6 May 8, 2014
.project No commit message Dec 22, 2011
.travis.yml skip gpg signing in travis Nov 4, 2015
CHECKSUMS.md add note about checksumming Aug 3, 2015
README.md v1.6.0 Sep 28, 2016
pom.xml v1.6.0 Sep 28, 2016

README.md

open-replicator

Open Replicator is a high performance MySQL binlog parser written in Java. It unfolds the possibilities that you can parse, filter and broadcast the binlog events in a real time manner.

releases

1.6.0

release: 2016-09-27
better microsecond timestamp precision, thanks Michel Pigassou
(all datetime2 classes now expose getTimestampValue(), which preserves all the time precision)

1.5.1

release: 2016-09-21
support NULL passwords

1.5.0

release: 2016-09-07
support a "stop-on-EOF" mode that borrows what mysqldump does, exiting when the server has no more
binlog events.

1.4.4

release: 2016-09-01
fixes incorrect nanosecond calcuation when using TIMESTAMP(X), DATETIME(X) and TIME(X) columns in 5.6

1.4.3

release: 2016-06-05
setup @slave_uid session variable for 5.6-compatible slave-uniqueness checks

1.4.2

release: 2016-03-01
Implment server-sent heartbeats and an API to check up on them.

1.4.1

release: 2016-01-29
pickup a couple of upstream fixes -- Gtid event parsing and something around closing the stream

1.4.0

release: 2016-01-06
support GIS extensions via vividsolution's 'jts' library

1.3.6

release: 2015-12-14
bug-fix: Fix issue with binlog_row_image = MINIMAL parsing overruns

1.3.5

release: 2015-11-04
bug-fix: don't emit format description events unless asked for in file replication
bug-fix: support checksums even if the consumer didn't ask for format description events

1.3.4

release: 2015-11-03
bug-fix: support mysql 5.6 file-based replication when the offset is greater than 4

1.3.3

release: 2015-10-30
support 5.6 checksums in file-based replication

1.3.2

release: 2015-10-07
bugfix for a big-endian issue that was corrupting BIT() columns longer than 2 bytes

1.3.1

release: 2015-09-28
provide a helpful error message when an old authentication scheme is detected

1.3.0

released: 2015-09-09
support mysql 5.6 and binlog_checksums

1.2.1

released: 2015-06-16
notify io reader thread on exception from buffered stream reader, so it doesn't wait infinitely

1.2.0

released: 2015-03-08
preserve invalid datetime values (0000-00-00, anyone?) as longs inside the datetime

1.1.2

released: 2015-02-20
expose binlog filename in event stream
rescue EOFException around doParse(); it's normal when the stream is closed

1.0.7

release date: 2014-05-12
support signed tinyint, smallint, mediumint, int, bigint

1.0.6

release date: 2014-05-08
remove dependency commons-lang, log4j
support MYSQL_TYPE_TIMESTAMP2, MYSQL_TYPE_DATETIME2, MYSQL_TYPE_TIME2

1.0.0

release date: 2011-12-29

maven

<dependency>
        <groupId>com.zendesk</groupId>
        <artifactId>open-replicator</artifactId>
        <version>1.3.0</version>
</dependency>

parsers

BinlogEventParser is plugable. All available implementations are registered by default, but you can register only the parsers you are interested in. Alt text

usage

final OpenReplicator or = new OpenReplicator();
or.setUser("root");
or.setPassword("123456");
or.setHost("localhost");
or.setPort(3306);
or.setServerId(6789);
or.setBinlogPosition(4);
or.setBinlogFileName("mysql_bin.000001");
or.setBinlogEventListener(new BinlogEventListener() {
    public void onEvents(BinlogEventV4 event) {
        // your code goes here
    }
});
or.start();

System.out.println("press 'q' to stop");
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(String line = br.readLine(); line != null; line = br.readLine()) {
    if(line.equals("q")) {
        or.stop();
        break;
    }
}