部署
1.下载admin
也可以下载源码 通过源码maven安装 从根目录targer下获取
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
2.解压
#创建目录
mkdir /tmp/canal-admin
#解压到此目录 tar zxvf canal.admin-$version.tar.gz -C /tmp/canal-admin
3.创建存放配置相关表
/target/canal.admin-1.1.4/conf/canal_manager.sql 有sql脚本
我遇到了启动server报错 server modified_time不能为null的异常我们将相关表改为可空就行 不影响使用
ALTER TABLE canal_manager.canal_node_server MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_adapter_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_cluster MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_instance_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_user MODIFY creation_date timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
4.配置修改
vi conf/application.yml
server: port: 8089 #对外暴露端口 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 spring.datasource: address: 127.0.0.1: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
5.将mysql 驱动包放到lib目录下
不同mysql版本不一样如:mysql-connector-java-5.1.47.jar
6.初始化数据库和表
canal有提供admin的相关数据库和表的创建语句 找到并到数据库执行就行了
canalAdmin1.1.4/conf/canal_manager.sql
7.启动
sh bin/startup.sh
如果启动不不起来查看日志/logs
5.登录
http://127.0.0.1:8089 用户名:admin 密码:123456
正常出来页面表示成功
http://127.0.0.1:8089
相关表介绍
UI介绍
集群管理:就是我们集群下的canal-server的公共配置(canal.properties) 由以前各个服务器配配置改为数据库配置和 zk地址,修改配置通知集群下的所有server
Server管理:注册到Admin的所有Server (针对单机可以配置各个server的canal.properties)
instance管理 对应以前的example 下的instance配置,不同的client可以配置订阅不同的instance配置 不同的instance下维护各自的binlog读取的指针位置 和指定库
如多个,号隔开 需要像example一样创建对应的目录
canal.properties 下的canal.destinations = example
单机配置
1.修改配置canal_local.properties
因为我们走admin维护 相关配置都配置在库里,所以我们只需要指定admin的地址和自动注册
# register ip canal.register.ip = # canal admin config canal.admin.manager = 127.0.0.1:8089 #与admin建立的链接端口 别冲突了 canal.admin.port = 31110 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # 知否自动注册 天ture canal.admin.register.auto = true #集群配置名字 我们是单机就不填 canal.admin.register.cluster = #server暴露端口 canal.port = 11115 canal.metrics.pull.port = 11116
2.启动server
指定使用canal_local.propertiesl配置文件,这里之前的cana.properties 和example的配置文件已经没用了
可以发现使用local我们的配置少了很多,其他我们要配置到admin 落库
./startup.sh local
3.admin增加配置落库
使用数据库管理配置 我们将之前配置的canal.properteis配置文件拷贝进来,注释掉canal.port = 11115 canal.metrics.pull.port = 11116 local里面配置了
看日志触发了重启 后续我们就可以用admin启动和配置了
4.instance配置 example下的instance.properties 拷贝过来就行保存落库 后续我们可以直接再这里修改相关配置
这里我们改一下名字 熟悉一下此配置在哪里
5.因为上面盖了名字我们回头去改配置
将
canal.destinations = example
改为
canal.destinations = example_single
或者
客户端就可以订阅不同实例的库 或者单独维护binlog读取指针
canal.destinations = example,example_single
集群配置
1.因为集群多个canal-server 相关配置都是一样的 除了暴露的端口不一样 所以我们要先增加集群配置
2.集群配置文件配置
因为集群除了各个server的端口不一样其他都一样将 canal.properties拷贝过来 将端口注释:canal.port = 11111 canal.metrics.pull.port = 11112 local有配置
3.各个canal_local.properties文件修改
# register ip canal.register.ip = # canal admin config canal.admin.manager = 127.0.0.1:8089 canal.admin.port = 21110 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # admin auto register canal.admin.register.auto = true #canalcluster 应用的配置和zk canal.admin.register.cluster = canalcluster #暴露端口 canal.port = 11111 canal.metrics.pull.port = 11112
canal.port = 11111 ,canal.metrics.pull.port = 11112,canal.admin.port = 21110 我们需要修改保证不冲突 然后启动各个server
测试
后续我们改配置和查日志和重启就可以根据admin