dirección de github
Utilice IDEA para abrirlo, preste atención al problema de carga lenta en China, la solución es la siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
Compilado exitosamente
módulo de código fuente
Los módulos 'canal.parse.driver', 'canal.sink', 'client-adapter.launcher', 'canal.client', 'canal.prometheus' y otros 36 fueron completamente reconstruidos debido a cambios de configuración/dependencias del proyecto.
módulo de administración:? ? ?
Módulo cliente: cliente del canal. La interfaz principal es CanalConnector
módulo adaptador de cliente :? ? ?
Módulo común: proporciona principalmente algunas clases e interfaces de herramientas públicas.
módulo conector:???
Módulo controlador y módulo dbsync: desde el artefactoId (canal.parse.driver, canal.parse.dbsync) de estos dos módulos, podemos ver que estos dos módulos son en realidad componentes del módulo analizador. De hecho, el analizador establece una conexión con mysql a través del módulo del controlador para obtener binlog. Dado que el binlog original es una secuencia binaria, debe analizarse en los eventos binlog correspondientes. Estos objetos de eventos binlog se definen en el módulo dbsync, que proviene del tddl de Taobao.
implementador: implementar módulo. Inicie el servidor del canal a través del CanalLauncher proporcionado por este módulo
módulo acoplable:???
Módulo de ejemplo: proporciona casos de uso del módulo de cliente.
módulo de filtro:???
imágenes: fotos
Módulo de instancia: un servidor tiene varias instancias. Cada instancia se simulará como esclava de una instancia de MySQL. El módulo de instancia tiene cuatro componentes principales: módulo analizador, módulo receptor, módulo de almacenamiento y módulo meta. La interfaz principal es CanalInstance
Metamódulo: administrador de información de consumo y suscripción incremental. La interfaz principal es CanalMetaManager, que se utiliza principalmente para registrar la ubicación del binlog de MySQL consumido por el canal.
Módulo de análisis: acceso a fuentes de datos, simula el protocolo esclavo y la interacción maestra, y análisis de protocolo. El módulo analizador depende de los módulos dbsync y controlador.
módulo prometeo:
módulo de protocolo: protocolo de comunicación entre los módulos cliente y servidor
Módulo de servidor: lado del servidor del canal. La interfaz principal es CanalServer.
Módulo receptor: analizador y vinculador de almacenamiento, que realiza el filtrado, procesamiento y distribución de datos. La interfaz principal es CanalEventSink
Módulo de tienda: almacenamiento de datos. La interfaz principal es CanalEventStore
A través del módulo implementador, inicie un servidor de canal. Un servidor de canal contiene múltiples instancias, y cada instancia se disfrazará como esclava de una instancia de mysql. El protocolo de comunicación entre el cliente y el servidor está definido por el módulo de protocolo. Cuando el cliente se suscribe a la información de binlog, debe pasar un parámetro de destino y el servidor determinará qué instancia proporcionará servicios en función de este destino.
Directorio de proyectos
D:\SRC\CANAL
├─.github
│ └─ISSUE_TEMPLATE
├─.idea
├─.mvn
│ └─wrapper
├─admin
│ ├─admin-ui
│ │ ├─build
│ │ ├─mock
│ │ ├─node
│ │ ├─public
│ │ ├─src
│ │ │ ├─api
│ │ │ ├─assets
│ │ │ │ └─404_images
│ │ │ ├─components
│ │ │ │ ├─Breadcrumb
│ │ │ │ ├─Hamburger
│ │ │ │ ├─Pagination
│ │ │ │ └─SvgIcon
│ │ │ ├─icons
│ │ │ │ └─svg
│ │ │ ├─layout
│ │ │ │ ├─components
│ │ │ │ │ └─Sidebar
│ │ │ │ └─mixin
│ │ │ ├─router
│ │ │ ├─store
│ │ │ │ └─modules
│ │ │ ├─styles
│ │ │ ├─utils
│ │ │ └─views
│ │ │ ├─canalServer
│ │ │ ├─dashboard
│ │ │ ├─login
│ │ │ └─sys
│ │ └─tests
│ │ └─unit
│ │ ├─components
│ │ └─utils
│ └─admin-web
│ ├─src
│ │ ├─main
│ │ │ ├─assembly
│ │ │ ├─bin
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─admin
│ │ │ │ ├─common
│ │ │ │ │ └─exception
│ │ │ │ ├─config
│ │ │ │ ├─connector
│ │ │ │ ├─controller
│ │ │ │ ├─handler
│ │ │ │ ├─model
│ │ │ │ └─service
│ │ │ │ └─impl
│ │ │ └─resources
│ │ │ └─public
│ │ │ └─static
│ │ │ ├─css
│ │ │ ├─fonts
│ │ │ ├─img
│ │ │ └─js
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─admin
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─admin
│ │ │ ├─common
│ │ │ │ └─exception
│ │ │ ├─config
│ │ │ ├─connector
│ │ │ ├─controller
│ │ │ ├─handler
│ │ │ ├─model
│ │ │ └─service
│ │ │ └─impl
│ │ └─public
│ │ └─static
│ │ ├─css
│ │ ├─fonts
│ │ ├─img
│ │ └─js
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─admin
├─client
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ ├─impl
│ │ │ │ └─running
│ │ │ ├─kafka
│ │ │ │ └─protocol
│ │ │ ├─pulsarmq
│ │ │ ├─rabbitmq
│ │ │ └─rocketmq
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─running
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ ├─impl
│ │ │ └─running
│ │ ├─kafka
│ │ │ └─protocol
│ │ ├─pulsarmq
│ │ ├─rabbitmq
│ │ └─rocketmq
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─client
│ └─running
├─client-adapter
│ ├─common
│ │ ├─src
│ │ │ ├─main
│ │ │ │ └─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─support
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─support
│ │ └─target
│ │ ├─classes
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─support
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─adapter
│ │ └─support
│ ├─es6x
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ ├─com
│ │ │ │ │ │ └─alibaba
│ │ │ │ │ │ └─otter
│ │ │ │ │ │ └─canal
│ │ │ │ │ │ └─client
│ │ │ │ │ │ └─adapter
│ │ │ │ │ │ └─es6x
│ │ │ │ │ │ ├─etl
│ │ │ │ │ │ └─support
│ │ │ │ │ └─org
│ │ │ │ │ └─elasticsearch
│ │ │ │ │ └─client
│ │ │ │ └─resources
│ │ │ │ ├─es6
│ │ │ │ └─META-INF
│ │ │ │ └─canal
│ │ │ └─test
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─es6x
│ │ │ │ └─test
│ │ │ │ └─sync
│ │ │ └─resources
│ │ │ └─es6
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─es6x
│ │ │ │ ├─etl
│ │ │ │ └─support
│ │ │ ├─es6
│ │ │ ├─META-INF
│ │ │ │ └─canal
│ │ │ └─org
│ │ │ └─elasticsearch
│ │ │ └─client
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─es6x
│ │ │ └─test
│ │ │ └─sync
│ │ └─es6
│ ├─es7x
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─client
│ │ │ │ │ └─adapter
│ │ │ │ │ └─es7x
│ │ │ │ │ ├─etl
│ │ │ │ │ └─support
│ │ │ │ └─resources
│ │ │ │ ├─es7
│ │ │ │ └─META-INF
│ │ │ │ └─canal
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─es7x
│ │ │ └─test
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─es7x
│ │ │ │ ├─etl
│ │ │ │ └─support
│ │ │ ├─es7
│ │ │ └─META-INF
│ │ │ └─canal
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─adapter
│ │ └─es7x
│ │ └─test
│ ├─escore
│ │ ├─src
│ │ │ └─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─es
│ │ │ └─core
│ │ │ ├─config
│ │ │ ├─monitor
│ │ │ ├─service
│ │ │ └─support
│ │ └─target
│ │ ├─classes
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─es
│ │ │ └─core
│ │ │ ├─config
│ │ │ ├─monitor
│ │ │ ├─service
│ │ │ └─support
│ │ └─generated-sources
│ │ └─annotations
│ ├─hbase
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─client
│ │ │ │ │ └─adapter
│ │ │ │ │ └─hbase
│ │ │ │ │ ├─config
│ │ │ │ │ ├─monitor
│ │ │ │ │ ├─service
│ │ │ │ │ └─support
│ │ │ │ └─resources
│ │ │ │ ├─hbase
│ │ │ │ └─META-INF
│ │ │ │ └─canal
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─hbase
│ │ │ └─test
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─hbase
│ │ │ │ ├─config
│ │ │ │ ├─monitor
│ │ │ │ ├─service
│ │ │ │ └─support
│ │ │ ├─hbase
│ │ │ └─META-INF
│ │ │ └─canal
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─adapter
│ │ └─hbase
│ │ └─test
│ ├─kudu
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─client
│ │ │ │ │ └─adapter
│ │ │ │ │ └─kudu
│ │ │ │ │ ├─config
│ │ │ │ │ ├─monitor
│ │ │ │ │ ├─service
│ │ │ │ │ └─support
│ │ │ │ └─resources
│ │ │ │ ├─kudu
│ │ │ │ └─META-INF.canal
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─kudu
│ │ │ └─test
│ │ │ └─sync
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─kudu
│ │ │ │ ├─config
│ │ │ │ ├─monitor
│ │ │ │ ├─service
│ │ │ │ └─support
│ │ │ ├─kudu
│ │ │ └─META-INF.canal
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─adapter
│ │ └─kudu
│ │ └─test
│ │ └─sync
│ ├─launcher
│ │ ├─src
│ │ │ └─main
│ │ │ ├─assembly
│ │ │ ├─bin
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─adapter
│ │ │ │ └─launcher
│ │ │ │ ├─common
│ │ │ │ ├─config
│ │ │ │ ├─loader
│ │ │ │ ├─monitor
│ │ │ │ │ └─remote
│ │ │ │ └─rest
│ │ │ └─resources
│ │ │ └─META-INF
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─adapter
│ │ │ │ └─launcher
│ │ │ │ ├─common
│ │ │ │ ├─config
│ │ │ │ ├─loader
│ │ │ │ ├─monitor
│ │ │ │ │ └─remote
│ │ │ │ └─rest
│ │ │ └─META-INF
│ │ └─generated-sources
│ │ └─annotations
│ ├─logger
│ │ ├─src
│ │ │ └─main
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─logger
│ │ │ └─resources
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─logger
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─generated-sources
│ │ └─annotations
│ ├─phoenix
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─client
│ │ │ │ │ └─adapter
│ │ │ │ │ └─phoenix
│ │ │ │ │ ├─config
│ │ │ │ │ ├─monitor
│ │ │ │ │ ├─service
│ │ │ │ │ └─support
│ │ │ │ └─resources
│ │ │ │ ├─META-INF
│ │ │ │ │ └─canal
│ │ │ │ └─phoenix
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─phoenix
│ │ │ └─test
│ │ │ └─sync
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─phoenix
│ │ │ │ ├─config
│ │ │ │ ├─monitor
│ │ │ │ ├─service
│ │ │ │ └─support
│ │ │ ├─META-INF
│ │ │ │ └─canal
│ │ │ └─phoenix
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─client
│ │ └─adapter
│ │ └─phoenix
│ │ └─test
│ │ └─sync
│ ├─rdb
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─client
│ │ │ │ │ └─adapter
│ │ │ │ │ └─rdb
│ │ │ │ │ ├─config
│ │ │ │ │ ├─monitor
│ │ │ │ │ ├─service
│ │ │ │ │ └─support
│ │ │ │ └─resources
│ │ │ │ ├─META-INF
│ │ │ │ │ └─canal
│ │ │ │ └─rdb
│ │ │ └─test
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─rdb
│ │ │ │ └─test
│ │ │ │ └─sync
│ │ │ └─resources
│ │ │ └─rdb
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─client
│ │ │ │ └─adapter
│ │ │ │ └─rdb
│ │ │ │ ├─config
│ │ │ │ ├─monitor
│ │ │ │ ├─service
│ │ │ │ └─support
│ │ │ ├─META-INF
│ │ │ │ └─canal
│ │ │ └─rdb
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─rdb
│ │ │ └─test
│ │ │ └─sync
│ │ └─rdb
│ └─tablestore
│ ├─src
│ │ └─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─tablestore
│ │ │ ├─common
│ │ │ ├─config
│ │ │ ├─enums
│ │ │ ├─service
│ │ │ └─support
│ │ └─resources
│ │ ├─META-INF
│ │ │ └─canal
│ │ └─tablestore
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─client
│ │ │ └─adapter
│ │ │ └─tablestore
│ │ │ ├─common
│ │ │ ├─config
│ │ │ ├─enums
│ │ │ ├─service
│ │ │ └─support
│ │ ├─META-INF
│ │ │ └─canal
│ │ └─tablestore
│ └─generated-sources
│ └─annotations
├─common
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ ├─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─common
│ │ │ │ ├─alarm
│ │ │ │ ├─utils
│ │ │ │ └─zookeeper
│ │ │ │ └─running
│ │ │ └─google
│ │ │ └─common
│ │ │ └─collect
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─common
│ │ └─utils
│ └─target
│ ├─classes
│ │ └─com
│ │ ├─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─common
│ │ │ ├─alarm
│ │ │ ├─utils
│ │ │ └─zookeeper
│ │ │ └─running
│ │ └─google
│ │ └─common
│ │ └─collect
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─common
│ └─utils
├─connector
│ ├─core
│ │ ├─src
│ │ │ └─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─core
│ │ │ ├─config
│ │ │ ├─consumer
│ │ │ ├─filter
│ │ │ ├─producer
│ │ │ ├─spi
│ │ │ └─util
│ │ └─target
│ │ ├─classes
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─core
│ │ │ ├─config
│ │ │ ├─consumer
│ │ │ ├─filter
│ │ │ ├─producer
│ │ │ ├─spi
│ │ │ └─util
│ │ └─generated-sources
│ │ └─annotations
│ ├─kafka-connector
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─connector
│ │ │ │ │ └─kafka
│ │ │ │ │ ├─config
│ │ │ │ │ ├─consumer
│ │ │ │ │ └─producer
│ │ │ │ └─resources
│ │ │ │ └─META-INF
│ │ │ │ └─canal
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─kafka
│ │ │ └─test
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─kafka
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─META-INF
│ │ │ └─canal
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─connector
│ │ └─kafka
│ │ └─test
│ ├─pulsarmq-connector
│ │ ├─src
│ │ │ ├─main
│ │ │ │ ├─java
│ │ │ │ │ └─com
│ │ │ │ │ └─alibaba
│ │ │ │ │ └─otter
│ │ │ │ │ └─canal
│ │ │ │ │ └─connector
│ │ │ │ │ └─pulsarmq
│ │ │ │ │ ├─config
│ │ │ │ │ ├─consumer
│ │ │ │ │ └─producer
│ │ │ │ └─resources
│ │ │ │ └─META-INF
│ │ │ │ └─canal
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─pulsarmq
│ │ │ └─consumer
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─pulsarmq
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─META-INF
│ │ │ └─canal
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─connector
│ │ └─pulsarmq
│ │ └─consumer
│ ├─rabbitmq-connector
│ │ ├─src
│ │ │ └─main
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─rabbitmq
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─resources
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─rabbitmq
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─generated-sources
│ │ └─annotations
│ ├─rocketmq-connector
│ │ ├─src
│ │ │ └─main
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─rocketmq
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─resources
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─target
│ │ ├─classes
│ │ │ ├─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─connector
│ │ │ │ └─rocketmq
│ │ │ │ ├─config
│ │ │ │ ├─consumer
│ │ │ │ └─producer
│ │ │ └─META-INF
│ │ │ └─canal
│ │ └─generated-sources
│ │ └─annotations
│ └─tcp-connector
│ ├─src
│ │ └─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─tcp
│ │ │ ├─config
│ │ │ └─consumer
│ │ └─resources
│ │ └─META-INF
│ │ └─canal
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─connector
│ │ │ └─tcp
│ │ │ ├─config
│ │ │ └─consumer
│ │ └─META-INF
│ │ └─canal
│ └─generated-sources
│ └─annotations
├─dbsync
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─taobao
│ │ │ └─tddl
│ │ │ └─dbsync
│ │ │ └─binlog
│ │ │ ├─event
│ │ │ │ └─mariadb
│ │ │ └─exception
│ │ └─test
│ │ ├─java
│ │ │ └─com
│ │ │ └─taobao
│ │ │ └─tddl
│ │ │ └─dbsync
│ │ │ └─binlog
│ │ │ └─event
│ │ └─resources
│ │ └─binlog
│ └─target
│ ├─classes
│ │ └─com
│ │ └─taobao
│ │ └─tddl
│ │ └─dbsync
│ │ └─binlog
│ │ ├─event
│ │ │ └─mariadb
│ │ └─exception
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ ├─binlog
│ └─com
│ └─taobao
│ └─tddl
│ └─dbsync
│ └─binlog
│ └─event
├─deployer
│ ├─src
│ │ └─main
│ │ ├─assembly
│ │ ├─bin
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─deployer
│ │ │ ├─admin
│ │ │ └─monitor
│ │ └─resources
│ │ ├─example
│ │ ├─metrics
│ │ └─spring
│ │ └─tsdb
│ │ ├─sql
│ │ └─sql-map
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─deployer
│ │ │ ├─admin
│ │ │ └─monitor
│ │ ├─example
│ │ ├─metrics
│ │ └─spring
│ │ └─tsdb
│ │ ├─sql
│ │ └─sql-map
│ └─generated-sources
│ └─annotations
├─docker
│ ├─base
│ │ └─yum
│ └─image
│ ├─admin
│ │ └─bin
│ └─alidata
│ ├─bin
│ ├─init
│ └─lib
├─driver
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─parse
│ │ │ └─driver
│ │ │ └─mysql
│ │ │ ├─packets
│ │ │ │ ├─client
│ │ │ │ └─server
│ │ │ ├─socket
│ │ │ └─utils
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─parse
│ │ └─driver
│ │ └─mysql
│ │ ├─packets
│ │ │ └─client
│ │ └─utils
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─parse
│ │ └─driver
│ │ └─mysql
│ │ ├─packets
│ │ │ ├─client
│ │ │ └─server
│ │ ├─socket
│ │ └─utils
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─parse
│ └─driver
│ └─mysql
│ ├─packets
│ │ └─client
│ └─utils
├─example
│ ├─src
│ │ └─main
│ │ ├─assembly
│ │ ├─bin
│ │ ├─conf
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─example
│ │ │ ├─kafka
│ │ │ └─rocketmq
│ │ └─resources
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─example
│ │ ├─kafka
│ │ └─rocketmq
│ └─generated-sources
│ └─annotations
├─filter
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─filter
│ │ │ ├─aviater
│ │ │ └─exception
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─filter
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─filter
│ │ ├─aviater
│ │ └─exception
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─filter
├─images
├─instance
│ ├─core
│ │ ├─src
│ │ │ └─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─core
│ │ └─target
│ │ ├─classes
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─core
│ │ └─generated-sources
│ │ └─annotations
│ ├─manager
│ │ ├─src
│ │ │ ├─main
│ │ │ │ └─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─instance
│ │ │ │ └─manager
│ │ │ │ ├─model
│ │ │ │ └─plain
│ │ │ └─test
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─manager
│ │ └─target
│ │ ├─classes
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─manager
│ │ │ ├─model
│ │ │ └─plain
│ │ ├─generated-sources
│ │ │ └─annotations
│ │ ├─generated-test-sources
│ │ │ └─test-annotations
│ │ └─test-classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─instance
│ │ └─manager
│ └─spring
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─spring
│ │ │ └─support
│ │ └─test
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─instance
│ │ │ └─spring
│ │ │ └─integrated
│ │ └─resources
│ │ ├─retl
│ │ └─spring
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─instance
│ │ └─spring
│ │ └─support
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ ├─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─instance
│ │ └─spring
│ │ └─integrated
│ ├─retl
│ └─spring
├─meta
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─meta
│ │ │ └─exception
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─meta
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─meta
│ │ └─exception
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─meta
├─parse
│ ├─src
│ │ ├─main
│ │ │ ├─java
│ │ │ │ └─com
│ │ │ │ └─alibaba
│ │ │ │ └─otter
│ │ │ │ └─canal
│ │ │ │ └─parse
│ │ │ │ ├─exception
│ │ │ │ ├─ha
│ │ │ │ ├─inbound
│ │ │ │ │ ├─group
│ │ │ │ │ └─mysql
│ │ │ │ │ ├─dbsync
│ │ │ │ │ ├─ddl
│ │ │ │ │ ├─local
│ │ │ │ │ ├─rds
│ │ │ │ │ │ ├─data
│ │ │ │ │ │ └─request
│ │ │ │ │ └─tsdb
│ │ │ │ │ └─dao
│ │ │ │ ├─index
│ │ │ │ └─support
│ │ │ └─resources
│ │ │ └─ddl
│ │ │ ├─derby
│ │ │ ├─h2
│ │ │ └─mysql
│ │ └─test
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─parse
│ │ │ ├─helper
│ │ │ ├─inbound
│ │ │ │ ├─group
│ │ │ │ └─mysql
│ │ │ │ ├─ddl
│ │ │ │ └─tsdb
│ │ │ ├─index
│ │ │ └─stub
│ │ └─resources
│ │ ├─binlog
│ │ │ └─tsdb
│ │ ├─ddl
│ │ │ ├─alter
│ │ │ └─table
│ │ └─tsdb
│ │ └─sql-map
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─parse
│ │ │ ├─exception
│ │ │ ├─ha
│ │ │ ├─inbound
│ │ │ │ ├─group
│ │ │ │ └─mysql
│ │ │ │ ├─dbsync
│ │ │ │ ├─ddl
│ │ │ │ ├─local
│ │ │ │ ├─rds
│ │ │ │ │ ├─data
│ │ │ │ │ └─request
│ │ │ │ └─tsdb
│ │ │ │ └─dao
│ │ │ ├─index
│ │ │ └─support
│ │ └─ddl
│ │ ├─derby
│ │ ├─h2
│ │ └─mysql
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ ├─binlog
│ │ └─tsdb
│ ├─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─parse
│ │ ├─helper
│ │ ├─inbound
│ │ │ ├─group
│ │ │ └─mysql
│ │ │ ├─ddl
│ │ │ └─tsdb
│ │ ├─index
│ │ └─stub
│ ├─ddl
│ │ ├─alter
│ │ └─table
│ └─tsdb
│ └─sql-map
├─prometheus
│ ├─src
│ │ └─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─prometheus
│ │ │ └─impl
│ │ └─resources
│ │ └─META-INF
│ │ └─services
│ └─target
│ ├─classes
│ │ ├─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─prometheus
│ │ │ └─impl
│ │ └─META-INF
│ │ └─services
│ └─generated-sources
│ └─annotations
├─protocol
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─protocol
│ │ │ ├─exception
│ │ │ └─position
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─protocol
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─protocol
│ │ ├─exception
│ │ └─position
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─protocol
├─server
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ ├─admin
│ │ │ │ ├─handler
│ │ │ │ └─netty
│ │ │ ├─server
│ │ │ │ ├─embedded
│ │ │ │ ├─exception
│ │ │ │ └─netty
│ │ │ │ ├─handler
│ │ │ │ └─listener
│ │ │ └─spi
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─server
│ │ └─embedded
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ ├─admin
│ │ │ ├─handler
│ │ │ └─netty
│ │ ├─server
│ │ │ ├─embedded
│ │ │ ├─exception
│ │ │ └─netty
│ │ │ ├─handler
│ │ │ └─listener
│ │ └─spi
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─server
│ └─embedded
├─sink
│ ├─src
│ │ ├─main
│ │ │ └─java
│ │ │ └─com
│ │ │ └─alibaba
│ │ │ └─otter
│ │ │ └─canal
│ │ │ └─sink
│ │ │ ├─entry
│ │ │ │ └─group
│ │ │ └─exception
│ │ └─test
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─sink
│ │ └─stub
│ └─target
│ ├─classes
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─sink
│ │ ├─entry
│ │ │ └─group
│ │ └─exception
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─sink
│ └─stub
└─store
├─src
│ ├─main
│ │ └─java
│ │ └─com
│ │ └─alibaba
│ │ └─otter
│ │ └─canal
│ │ └─store
│ │ ├─helper
│ │ ├─memory
│ │ └─model
│ └─test
│ └─java
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─store
│ └─memory
│ └─buffer
└─target
├─classes
│ └─com
│ └─alibaba
│ └─otter
│ └─canal
│ └─store
│ ├─helper
│ ├─memory
│ └─model
├─generated-sources
│ └─annotations
├─generated-test-sources
│ └─test-annotations
└─test-classes
└─com
└─alibaba
└─otter
└─canal
└─store
└─memory
└─buffer