我对于 canal 各组件的理解是这样的: canal server 监听 mysql binlog的变动, 向 adapter 推送. 然后由 adapter 执行后续的逻辑, 例如向 es 同步数据. 既然 adapter 是从server 获取数据变更的, 那为什么在 adapter 的配置文件 application.yml 中需要配置数据源 mysql 的账号密码呢? adapter 访问 mysql 的目的是什么?
Q
[alibaba/canal]为什么 adapter 需要配置数据源 mysql 的账号密码?
0
A
回答
2
同问,srcDataSources.defaultDS: 与 canalAdapters. instance: 之间是什么关系?我理解 adapter 是通过canal server的 instance监听数据。如果是这样的话,canal server的 instance就相当于数据源,那为什么还需要 srcDataSources.defaultDS ?还是说srcDataSources.defaultDS 是用来做全量同步的?
8
就是用来做全量同步获取数据的。 还有表配置文件里面没有 DB 名,其实是通过解析 dataSourceKey 配置项去拿到 DB 名的
7
1.同问,srcDataSources.defaultDS不配置的话adapter是跑不起来的,我不需要做全量同步的话,srcDataSources.defaultDS应该不用配置。而且adapter的conf配置中为什么还要配置dataSourceKey? 2.大家全表同步怎么配置的,是单张表写配置文件还是全表映射?全表映射必须要保证两边的数据库和表名一模一样,这似乎有点不合理
2
必须配置 dataSourceKey。注意到表配置文件里面没有 DB 名,其实是通过解析 dataSourceKey 配置项去拿到 DB 名的。
2
感谢