一 高可用架构设计

配置说明:
zookeeper x 3 + canal x 2 + mysql x 2
组件说明:
- 1.linux内核版本(CentOS Linux 7):(命令:uname -a)
Linux slave1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux - 2.mysql版本:(SQL命令:select version(); 或 status)
Server version: 5.6.43-log MySQL Community Server (GPL) - 3.canal版本:canal-1.1.3
- 4.zookeeper版本:zookeeper-3.4.5-cdh5.7.0
- 5.JDK版本: 1.8
canal工作原理:
- 1.模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议;
- 2.mysql master收到dump请求,开始推送binary log给slave(也就是canal);
- 3.解析binary log对象(原始为byte流)
了解更多详细更新可以查看文章:【了解canal,看这个就够了】
二 配置与部署流程
2.1 安装mysql数据库
1. 下载安装
在192.168.175.21和192.168.175.22两台服务器上分别安装mysql,具体安装流程可参考文章:Linux-安装MySQL.
2. 创建canal账户
在创建root账号并设置远程访问之后,接着创建canal账号并设置远程访问和权限:
mysql> CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
mysql> GRANT ALL ON canal.* TO 'canal'@'%';
mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'canal'@'%';
mysql>FLUSH PRIVILEGES;
3. 验证登录
#远程登录
mysql -h 192.168.175.22 -P 3306 -u canal -pcanal
#本地登录
mysql -ucanal -pcanal
4. 修改my.cnf配置(这一步非常关键!!!)
分别在175.21和175.22两台服务器修改my.conf配置,查找my.cnf配置位置命令:whereis my.
示例,在192.168.175.21的my.cnf配置新增如下内容:
log_bin=mysql-bin #指定bin-log的名称,尽量可以标识业务含义
binlog_format=row #选择row模式,必须!!!
server_id=1 #mysql服务器id
2.2 搭建zookeeper集群
搭建zookeeper集群地址为192.168.175.20:2181,192.168.175.21:2181,192.168.175.22:2181,具体搭建流程,可查看文章【Zookeepr3.4.5集群搭建】。
2.3 搭建canal server集群
前提: mysql已打开binlog功能,且配置binlog模式为row.
1. 下载最新canal安装包
下载地址: https://github.com/alibaba/canal/releases/download/canal-1.1.3/canal.deployer-1.1.3.tar.gz

本文详细介绍了一种基于Zookeeper、Canal和MySQL的高可用架构设计与部署流程,包括组件版本、工作原理、配置步骤及HA机制验证,旨在实现数据库变更事件的实时捕获与消费。
最低0.47元/天 解锁文章
203

被折叠的 条评论
为什么被折叠?



