adresse github
Utilisez IDEA pour l'ouvrir. Faites attention au problème de chargement lent en Chine. La solution est la suivante :
<?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>
Compilé avec succès
Module de code source
Les modules 'canal.parse.driver', 'canal.sink', 'client-adapter.launcher', 'canal.client', 'canal.prometheus' et 36 autres ont été entièrement reconstruits en raison des modifications de configuration/dépendances du projet.
module d'administration : ? ? ?
module client : client du canal. L'interface principale est CanalConnector
module adaptateur client : ? ? ?
module commun : fournit principalement certaines classes d'outils et interfaces publiques.
module de connexion : ???
module driver et module dbsync : A partir de l'artefactId (canal.parse.driver, canal.parse.dbsync) de ces deux modules, nous pouvons voir que ces deux modules sont en fait des composants du module analyseur. En fait, l'analyseur établit une connexion avec MySQL via le module pilote pour obtenir binlog. Puisque le binlog d'origine est un flux binaire, il doit être analysé en événements binlog correspondants. Ces objets d'événement binlog sont définis dans le module dbsync. Le module dbsync provient du tddl de Taobao.
déployeur : déployer le module. Démarrez le serveur de canal via le CanalLauncher fourni par ce module
module docker : ???
exemple de module : fournit des cas d'utilisation du module client.
module de filtre : ???
images : photos
Module Instance : Un serveur possède plusieurs instances. Chaque instance sera simulée en tant qu'esclave d'une instance mysql. Le module d'instance comporte quatre composants principaux : le module d'analyseur, le module récepteur, le module de magasin et le module méta. L'interface principale est CanalInstance
Meta module : gestionnaire d'informations d'abonnement et de consommation incrémentielles. L'interface principale est CanalMetaManager, qui est principalement utilisée pour enregistrer l'emplacement du binlog mysql consommé par canal.
Module d'analyse : accès à la source de données, simule l'interaction du protocole esclave et du maître, ainsi que l'analyse du protocole. Le module analyseur dépend des modules dbsync et driver.
module Prométhée :
module de protocole : protocole de communication entre les modules client et serveur
Module serveur : côté serveur de canal. L'interface principale est CanalServer
Module Sink : analyseur et éditeur de liens de stockage, qui effectue le filtrage, le traitement et la distribution des données. L'interface principale est CanalEventSink
module magasin : stockage de données. L'interface principale est CanalEventStore
Via le module de déploiement, démarrez un serveur canal. Un serveur canal contient plusieurs instances, et chaque instance sera déguisée en esclave d'une instance mysql. Le protocole de communication entre client et serveur est défini par le module de protocole. Lorsque le client s'abonne aux informations du binlog, il doit transmettre un paramètre de destination et le serveur déterminera quelle instance fournira des services basés sur cette destination.
Répertoire du projet
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