private Header createHeader( String binlogFile, LogHeader logHeader, String schemaName, String tableName) { // header会做信息冗余,方便以后做检索或者过滤 Header.Builder headerBuilder = Header.newBuilder(); headerBuilder.setVersion(version); headerBuilder.setLogfileName(binlogFile); headerBuilder.setLogfileOffset(logHeader.getLogPos() - logHeader.getEventLen()); headerBuilder.setServerId(logHeader.getServerId()); headerBuilder.setServerenCode(UTF_8); // 经过java输出后所有的编码为unicode headerBuilder.setExecuteTime(logHeader.getWhen() * 1000L); headerBuilder.setSourceType(Type.MYSQL); if (schemaName != null) { headerBuilder.setSchemaName(StringUtils.lowerCase(schemaName)); } if (tableName != null) { headerBuilder.setTableName(StringUtils.lowerCase(tableName)); } headerBuilder.setEventLength(logHeader.getEventLen()); return headerBuilder.build(); }
/** * The total size of this event, in bytes. In other words, this is the sum of the sizes of * Common-Header, Post-Header, and Body. */ public final int getEventLen() { return header.getEventLen(); }