您现在的位置是:网站首页> 编程资料编程资料
mysql-canal-rabbitmq 安装部署超详细教程_Mysql_
2023-05-27
372人已围观
简介 mysql-canal-rabbitmq 安装部署超详细教程_Mysql_
1.1. 开启 MySQL 的 binlog 日志
1.修改 my.cnf 或 my.ini(windows), 添加配置项:
# binlog 日志存放路径 log-bin=D:\env\mysql-5.7.28-winx64\binlog # 日志中记录每一行数据被修改的形式 binlog-format=ROW # 当前机器的服务 ID, 如果为集群时不能重复 server_id=1
2.重启 mysql 服务后, 查看配置变量是否生效:
mysql> show variables like '%log_bin%'; +---------------------------------+----------------------+ | Variable_name | Value | +---------------------------------+----------------------+ | log_bin | ON | | log_bin_basename | D:\env\mysql-5 | | log_bin_index | D:\env\mysql-5.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+----------------------+ 6 rows in set, 1 warning (0.00 sec)
配置 mysql 数据库的 canal 用户
mysql -uroot -p 登录 mysql, 创建并授权用户 canal;
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; FLUSH PRIVILEGES;
1.2. 配置 rabbitmq Exchanges 和 Queues
1.新建 Queue

2.新建 Exchange

3.设置 Queue 里的 Bindings, 填写 Exchange 名称, 以及路由 Routing key;

1.3. 安装单机 canal
1.3.1. 下载安装
下载 并解压缩;
sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz sudo tar -zxvf canal.deployer-1.1.4.tar.gz
最新版本 1.1.5的安装
sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.deployer-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.deployer-1.1.5-SNAPSHOT.tar.gz
1.3.2. 配置文件
1.3.2.1. 节点配置文件 canal.properties
# tcp bind ip, 当前节点的 IP 地址 canal.ip = 192.168.2.108 # register ip to zookeeper, 注册到 ZK 的 IP 地址, 如下图1. canal.register.ip = 192.168.2.108 canal.zkServers = zk集群 # tcp, kafka, RocketMQ, 最新版本 1.1.5 可以直接连接 rabbitmq canal.serverMode = rabbitmq # destinations, 当前 server 上部署的 instance 列表, 对应各个实例文件夹(../conf/)名称 canal.destinations = example2 # 设置 mq 服务器地址, 此处为 rabbitmq 的服务器地址 # !! 此处下载后默认的配置是有配置IP:端口的 # rabbitmq 此处则不需要配置端口 canal.mq.servers = 192.168.208.100 # 一下几项均为 1.1.5 新版本新增支持 rabbitmq 的配置 canal.mq.vhost=/ canal.mq.exchange=example2-ex # 指定 rabbitmq 上的 exchange 名称, "新建 `Exchange`" 步骤新建的名称 canal.mq.username=admin # 连接 rabbitmq 的用户名 canal.mq.password=**** # 连接 rabbitmq 的密码 canal.mq.aliyunuid=

1.3.2.2. 实例配置文件 instance.properties
# position info, 数据库的连接信息 canal.instance.master.address=192.168.2.108:3306 # 以下两个配置, 需要在上面配置的 address 的数据库中执行 `SHOW MASTER STATUS` 获取的 `File` 和 `Position` 两个字段值 canal.instance.master.journal.name=mysql-5.7 canal.instance.master.position=674996 # table meta tsdb info, 禁用 tsdb 记录 table meta 的时间序列版本 canal.instance.tsdb.enable=false # username/password, 实例连接数据的用户名和密码 canal.instance.dbUsername=canal canal.instance.dbPassword=canal # table regex, 正则匹配需要监听的数据库表 canal.instance.filter.regex=ysb\\.useropcosttimes_prod # mq config, 指定 rabbitmq 设置绑定的路由, 详见"配置rabbitmq"步骤里的第三步配置的`Routing key` canal.mq.topic=example2-routingkey
1.3.3. 启动 canal 服务
Linux 对应的启动脚本 ./bin/startup.sh, Windows 对应的启动脚本 ./bin/startup.bat; 以 Windows 为例:
λ .\startup.bat start cmd : java -Xms128m -Xmx512m -XX:PermSize=128m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9099,server=y,suspend=n -DappName=otter-canal -Dlogback.configurationFile="d:\env\green\canal-1.1.5\bin\\..\conf\logback.xml" -Dcanal.conf="d:\env\green\canal-1.1.5\bin\\..\conf\canal.properties" -classpath "d:\env\green\canal-1.1.5\bin\\..\conf\..\lib\*;d:\env\green\canal-1.1.5\bin\\..\conf" java -Xms128m -Xmx512m -XX:PermSize=128m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9099,server=y,suspend=n -DappName=otter-canal -Dlogback.configurationFile="d:\env\green\canal-1.1.5\bin\\..\conf\logback.xml" -Dcanal.conf="d:\env\green\canal-1.1.5\bin\\..\conf\canal.properties" -classpath "d:\env\green\canal-1.1.5\bin\\..\conf\..\lib\*;d:\env\green\canal-1.1.5\bin\\..\conf" com.alibaba.otter.canal.deployer.CanalLauncher Java HotSpot(TM) Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 Listening for transport dt_socket at address: 9099
最后手动修改数据库数据, 或者等待其他的修改, 再查看一下 rabbitmq 上的监控即可知道流程是否走通了.

1.4. 安装集群 canal
1.4.1. 安装 canal-admin
1.4.1.1. 下载安装
下载并解压缩
sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.admin-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.admin-1.1.5-SNAPSHOT.tar.gz
1.4.1.2. 配置文件
application.yml
server: port: 8089 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 spring.datasource: address: 192.168.2.108:3306 database: canal_manager username: canal password: canal driver-class-name: com.mysql.jdbc.Driver # 数据库连接字符串末尾需添加`serverTimezone=UTC`, 否则启动时会报时区异常; url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC hikari: maximum-pool-size: 30 minimum-idle: 1 canal: # 配置 canal-admin 的管理员账号和密码 adminUser: admin adminPasswd: 123456canal_manager.sql
在管理canal-admin数据的数据库中执行该 sql 脚本, 初始化一些表;
1.4.1.3. 启动 canal-admin 服务
Linux 对应的启动脚本 ./bin/startup.sh, Windows 对应的启动脚本 ./bin/startup.bat; 以 Windows 为例:
λ .\startup.bat start cmd : java -Xms128m -Xmx512m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -DappName=canal-admin -classpath "D:\env\green\canal-1.1.5-admin\bin\\..\conf\..\lib\*;D:\env\green\canal-1.1.5-admin\bin\\..\conf" com.alibaba.otter.canal.admin.CanalAdminApplication 2020-04-13 20:01:39.495 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - Starting CanalAdminApplication on Memento-PC with PID 50696 (D:\env\green\canal-1.1.5-admin\lib\canal-admin-server-1.1.5-SNAPSHOT.jar started by Memento in D:\env\green\canal-1.1.5-admin\bin) 2020-04-13 20:01:39.527 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - No active profile set, falling back to default profiles: default 2020-04-13 20:01:39.566 [main] INFO o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13a5bf6: startup date [Mon Apr 13 20:01:39 CST 2020]; root of context hierarchy 2020-04-13 20:01:41.149 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8089 (http) 2020-04-13 20:01:41.166 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initia
相关内容
- 详解记录MySQL中lower_case_table_names的坑_Mysql_
- 详解mysql查询缓存简单使用_Mysql_
- gorm操作MySql数据库的方法_Mysql_
- MySQL5.7 集群配置的步骤_Mysql_
- MySQL 普通索引和唯一索引的区别详解_Mysql_
- Navicat Premium如何导入SQL文件的方法步骤_Mysql_
- Windows下通过cmd进入DOS窗口访问MySQL数据库_Mysql_
- Mysql快速插入千万条数据的实战教程_Mysql_
- mysql-joins具体用法说明_Mysql_
- MySQL之MHA高可用配置及故障切换实现详细部署步骤_Mysql_
点击排行
本栏推荐
