序
本文主要研究一下BinaryLogFileReader
BinaryLogFileReader
mysql-binlog-connector-java-0.20.1/src/main/java/com/github/shyiko/mysql/binlog/BinaryLogFileReader.java
1 | 复制代码public class BinaryLogFileReader implements Closeable { |
- BinaryLogFileReader实现了Closeable接口,其close方法会关闭inputStream;它定义了inputStream、eventDeserializer两个属性,其构造器接收binlog的文件或者inputStream,也允许指定eventDeserializer;其readEvent方法通过eventDeserializer.nextEvent(inputStream)来返回Event,读完的时候返回null
EventDeserializer
mysql-binlog-connector-java-0.20.1/src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/EventDeserializer.java
1 | 复制代码public class EventDeserializer { |
- EventDeserializer定义了eventHeaderDeserializer、defaultEventDataDeserializer等属性;其nextEvent方法先通过eventHeaderDeserializer.deserialize(inputStream)解析eventHeader,之后根据eventHeader.getEventType()来解析不同的eventData,最后将header及data组装为Event返回
EventHeader
mysql-binlog-connector-java-0.20.1/src/main/java/com/github/shyiko/mysql/binlog/event/EventHeader.java
1 | 复制代码public interface EventHeader extends Serializable { |
- EventHeader定义了getTimestamp、getEventType、getServerId、getHeaderLength、getDataLength方法
EventData
mysql-binlog-connector-java-0.20.1/src/main/java/com/github/shyiko/mysql/binlog/event/EventData.java
1 | 复制代码public interface EventData extends Serializable { |
- EventData接口继承了Serializable接口
小结
BinaryLogFileReader实现了Closeable接口,其close方法会关闭inputStream;它定义了inputStream、eventDeserializer两个属性,其构造器接收binlog的文件或者inputStream,也允许指定eventDeserializer;其readEvent方法通过eventDeserializer.nextEvent(inputStream)来返回Event,读完的时候返回null
doc
本文转载自: 掘金