目录
2、时序数据库(关于创建log,数据快照,建表时候防止数据丢失)
canal
https://github.com/alibaba/canal/wiki/QuickStart
跟着安装即可。对于xxx/canal/conf/canal.properties,需要注意的点:
1、连接模式配置
如果使用tcp作为连接(一般只是用来尝试是否能连接,和使用adapter的时候)或 kafka作为连接(消息队列,实时获取,便于维护),需要注意图中红色箭头的配置
tcp对应于6667端口,kafka对应kafka设置的9092端口(根据设置的不同而改变,这里是采用默认的)
2、时序数据库(关于创建log,数据快照,建表时候防止数据丢失)
需要配置对应的数据库类型。可选的有h2和mysql。h2为内置默认的数据库,mysql为可选。
如果出现与canal系列相关软件启动所依赖的建表语句出错的情况,时序数据库会记录这个快照,并且在下一次启动的时候使用此快照缓存,这将导致canal server永远无法启动,除非手动删除快照和历史信息。
而h2数据库我们使用较少,我们对于mysql使用更加熟悉,因此可以将时序数据库以mysql的形式建立,方便使用和管理。(当然用h2也是可以的,配置好就行)
3、实例的配置
关注两点,一是监听的表,二是topic的名字,需要和kafka完全一致!(tcp的话可以先不理)
canal-admin
官网
https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart
一篇有启发的安装教程文档
https://blog.youkuaiyun.com/u012946310/article/details/109382279
1、下载安装
(1)下载
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
(2)解压
mkdir /usr/local/canal-admin
tar zxvf canal.admin-$version.tar.gz -C /usr/local/canal-admin
2、配置
/usr/local/canal-admin/conf/application.yml
server:
port: 8089
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
spring.datasource:
address: 192.168.1.30:3306 # 没什么特别的要求就改这里就可以
database: canal_manager
username: canal
password: canal
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
hikari:
maximum-pool-size: 30
minimum-idle: 1
canal:
adminUser: admin
adminPasswd: admin
3、初始化元数据库
进入mysql交互界面
source conf/canal_manager.sql
需要注意,canal的语法检查没有mysql那么灵活,因此canal_manager.sql中建表的“/*”, "!"之流,会报错。因此在执行上述语句之前,需要将这些字符删除掉。
如果已经执行了错误的语句,canal server则会因为时序数据库记录的快照和历史,不断使用报错的语句执行启动,导致无法启动,此时需要连接h2或mysql的时序数据库,删除对应的meta-history项。例如
4、启动和canal基本server配置的启动
普通的启动:
bin/startup.sh
然后查看logs根据对应的问题进行排查和修复(暂时未遇到问题。可能因为admin是一个相对独立的软件)
启动配置较少的canal-server,就用原本的canal_local.properties当做配置项即可。
需要注意:红色箭头一定要写,不然会因为读取网卡的ip地址导致远程tcp连接canal出错(路由内的地址,只能内网连)。配置了红色箭头的话,才能正常以tcp的形式连接上canal(kafka的话就无所谓了)
启动canal-server。到canal的目录下
bin/startup.sh local
查看startup.sh的代码可以知道,加上local入参就是使用canal_local.properties,不加就是canal.properties
如果不在乎本机配置,可以直接用canal_local的配置覆盖canal的配置。
5、admin的配置——重要
浏览器的图形界面:(初始账号密码admin/123456,不然就admin试试)
zookeeper的注册页面和canal的集群地址:(初始账号密码admin/123456,不然就admin试试)
用于观察tcp端口是否打开(kafka或其他mq的模式就无所谓了)
连接上去,按照对应的层级(集群、server、instance)进行配置。
都有现成的模板可以配置。按照需要的canal的server和instance的配置,就可以动态管理canal的连接配置状态。——todo:需要补充