Canal高可用集群搭建过程

Canal高可用集群搭建过程

一、简单介绍一下Canal

Canal简介:https://github.com/alibaba/canal/wiki/简介

在这里插入图片描述

Canal Server:该程序是Canal官方提供程序。
Canal Client:该程序需要自己开发,用于接收Canal的数据(此案例以Java代码为例)。

集群挂载流程如下:

同时启动2个Canal Server,仅有一个Canal Server和一个Canal Client可运行,另外都在阻塞等待;
当正在运行的Canal Server或者Canal Client下线了,则另一台会自动挂载。

高可用集群实现:Canal Server端需要配置canal.zkServers;而Canal Client端只需要配置canal.zk.address即可。

二、MySQL开启 Binlog 同步

参考官方文档:https://github.com/alibaba/canal/wiki/QuickStart 的【准备】章节。

三、Zookeeper的准备

Canal是以Zookeeper作为服务发现和注册的,所以得安装一个Zookeeper才能实现集群。
Zookeeper的下载地址(注意:一定要下 apache-zookeeper-3.5.5-bin.tar.gz 包):https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
Zookeeper UI的下载地址:
https://github.com/DeemOpen/zkui

四、Canal Server部署

参考官方文档:https://github.com/alibaba/canal/wiki/QuickStart 的【启动】章节

第一步:修改配置文件

# 修改配置文件 {canal_base}/conf/canal.properties  
canal.zkServers=127.0.0.1:2181

第二步:复制多一个canal文件夹,暂且命名该文件夹为 canal_slave

# 修改 {canal_slave_base}/conf/canal.properties 文件
canal.port=12111
canal.metrics.pull.port=12112
canal.zkServers=127.0.0.1:2181 

五、Canal Client部署

参考项目:https://github.com/fomeiherz/canal-example
第一步:修改配置文件

# 修改 canal-example/src/main/resources/application.properties 配置文件
server.port=9091  
canal.zk.address=127.0.0.1:2181

第二步:复制一个项目,暂且定为 canal-example-slave

# 修改 canal-example-slave/src/main/resources/application.properties 配置文件
server.port=9092  
canal.zk.address=127.0.0.1:2181
要在Docker中实现Canal高可用部署,需要使用Docker Compose来定义和管理多个容器。下面是一个简单的Docker Compose文件示例: ``` version: '3.7' services: canal-server: image: canal/canal-server:v1.1.4 container_name: canal-server restart: always environment: - canal.instance.mysql.slaveId=1 - canal.instance.master.address=mysql:3306 - canal.instance.dbUsername=<username> - canal.instance.dbPassword=<password> - canal.instance.connectionCharset=UTF-8 ports: - "11111:11111" depends_on: - zookeeper zookeeper: image: zookeeper:3.6.2 container_name: zookeeper restart: always environment: - ZOO_MY_ID=1 - ZOO_SERVERS=server.1=zookeeper:2888:3888 ports: - "2181:2181" - "2888:2888" - "3888:3888" ``` 在这个Docker Compose文件中,我们定义了两个服务:canal-server和zookeeper。canal-server是Canal服务的主要组件,它从MySQL数据库中读取数据,并将其写入到Kafka或其他消息队列中。zookeeper是Canal的依赖项之一,用于协调Canal集群中各个节点之间的通信。 在canal-server服务中,我们指定了一些环境变量来配置Canal实例。这些变量包括MySQL主库地址、用户名、密码以及连接字符集等信息。我们还将容器端口映射到主机的11111端口,以便我们可以通过该端口访问Canal服务。 在zookeeper服务中,我们使用zookeeper:3.6.2镜像来运行一个ZooKeeper节点,并指定了一些环境变量来配置ZooKeeper实例。我们将容器端口映射到主机的2181、2888和3888端口,以便我们可以通过这些端口访问ZooKeeper服务。 要运行这个Docker Compose文件,只需在包含该文件的目录中运行以下命令: ``` docker-compose up -d ``` 这会启动Canal服务和ZooKeeper服务,并将它们放入后台运行。要停止这些服务,可以运行以下命令: ``` docker-compose down ``` 这将停止并删除所有Docker容器和相关的网络和卷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值