FountainMQ
MemFountainMQ
TableMetaProvider
RowsLogEvent
Transport
JsonPackProtocol
BinlogEventHeader
JmsTemplate
AbstractProducer
+ Parser parser+ BinlogDataSource dataSource+ DispatchWorkflow dispatcher+ DispatchUnitManager dispatchUnitManager+ EventMatcher matcher+ String dbCharset+ HaGuard haGuard+ TransactionPolicy transactionPolicy+ repeatResourceInterval = 5000ms+ threadStartTimeout = 3000ms+ String sliceName+ String beanName+ consequentSocketTimeoutHandler:ConsequentSocketTimeoutHandler
RowsLogEventV1
LongColumnDataParser
BinlogRowOutputUnitManager
AmqTransport
+ jmsTemplate:JmsTemplate
NoneHaGuad
AbstractTableMatcher
+tableWhite: String+tableBlack: String
JsonBytePackProtocol
NonePackProtocol
TableMatcher
+ getTableName():String
HaGuard
EventHeader
+getGroupId():BigInteger +getTimestamp():long+parseHeader(ByteBuffer buf):void
DateTimeColumnDataParser
DispatchUnitManager
ColumnData
Object value;int javaType;boolean isNull;int sqlType = -1;
ColumnDataParserFactory(见左下)
ChangeDataSet
BaseLogEvent
+ eventHeader:EventHeader
+ parseData(ByteBuffer buf): BaseLogEvent
PackProtocol
+ pack(Object event):Object
MultiPermitsMemFountainMQ
TransactionPolicy
DefaultDispatchWorkflow
+ packProtocol: PackProtocol+ transFilter: TransportFilter+ tranport: Transport
ColumnTypeEnum
BinlogTraceable
+ getSyncPoint():SyncPoint +getInstanceName():String+getDataSize():int
NoSeparationPolicy
DatabusTableMatcher
PbPackProtocol
RowEvent
AbstractMaxCapacityFountainMQ
ColumnMeta
String columnName;String columnType;String generalColumnType;ColumnTypeEnum typeEnum;String charset;String shortCharset;String nullFlag;String keyFlag;String defaultValue;String extra;int metaValue;boolean fromDatabus = false;int databusColumnBimap; // just one byte
BinlogDataSource
AbsractCachedColumnDataParserFactory
+ createColumnDataParser(ColumnTypeEnum typeEnum):ColumnDataParser
DatabusEventHeader
TableMapEvent
EventMatcher
+ matcher(BaseLogEvent event):boolean
FoutainMQTransport
+ fmq:FountainMQ+ messageSeparationPolicy:MessageSeparationPolicy
DatabusProducer
DatabusRowOutputUnitManager
SingleProducer
+ \bstart()+ destroy()
QueryLogEvent
TransportFilter
+ filter(Object transObj):boolean
XidLogEvent
TinyIntColumnDataParser
RowData
+List beforeColumnList+List afterColumnList
Parser
DispatchWorkflow
+ dispatchEvent(ChangeDataSet ds):void+ registerProducer(String producer):void
StopEvent
RotateEvent
NonTransactionPolicy
+ dataSet:ChangeDataSet
CachedTableMetaProvider
MessageSeparationPolicy
+ separate(final Object message): Iterator
GroupDispatchWorkflow
+dispList:List
ColumnDataParserFactory
+ factory(ColumnTypeEnum typeEnum):ColumnDataParser
DefaultColumnDataParserFactory
...
DiscardHugeTableTransactionPolicy
AbstractOutputUnitManager
+ transactionPolicy: TransactionPolicy
DefaultProducer
NullTransportFilter
DatabusParser
+ columnDataParserFactory: DatabusColumnDataParserFactory
+ factory(DatabusEventHeader header): DatabusBaseEvent
DefaultParser
+ fmtInfo:FormatInfo+ tableEventCache:TableEventCache+ tableMetaProvider: TableMetaProvider+ tableNameMatcher: EventMatcher+ columnDataParserFactory: DefaultColumnDataParserFactory+ tableInfoCallback:TableInfoCallback
+ judgeEventError(ByteBuffer buff):void+ isFilter(TableMapEvent tableMapEvent):boolean + eventFactory(BinlogEventHeader eventHeader):BaseLogEvent
FormatDescriptionEvent
MiniTransactionPolicy
DatabusColumnDataParserFactory
RowsLogEventV2
ColumnDataParser
AbstractFullTransactionPolicy
BeanNameAware
TableMeta
+ fullName:String+ columnMetaList:List+ tableId:int
BigChangeDataSetMessageSeparationPolicy
+ maxSubSize=10