docker docker-compose.yml 部署canal 创建配置example配置 部署 mysql 8.0.30 部署rabbitmq 创建消息队列 部署canal同步rabbitmq
时间: 2024-03-26 20:37:47 浏览: 139
docker-compose 部署 mysql服务
好的,我会尽量回答您的问题。
首先,您需要在docker中部署canal,可以使用以下docker-compose.yml文件:
```
version: '3'
services:
canal-server:
image: canal/canal-server:v1.1.4
ports:
- 11111:11111
environment:
- canal.instance.master.address=mysql:3306
- canal.instance.dbUsername=canal
- canal.instance.dbPassword=canal
- canal.instance.connectionCharset=UTF-8
- canal.instance.tsdb.enable=true
- canal.instance.gtidon=false
- canal.instance.filter.query.dcl=false
- canal.instance.filter.query.ddl=false
mysql:
image: mysql:8.0.30
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=canal
- MYSQL_PASSWORD=canal
```
然后,您需要创建一个example配置文件,用于同步mysql到rabbitmq。可以参考以下示例配置:
```
canal.instance.master.address = 127.0.0.1:3306
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.filter.regex = .*\\..*
canal.instance.filter.black.regex = mysql\\.slave_.*
canal.mq.topic = example
canal.mq.partition = 0
canal.mq.dynamicTopic = false
canal.mq.partitionsNum = 3
canal.mq.groupId = GID_example
canal.mq.accessKey =
canal.mq.secretKey =
canal.mq.namespace =
canal.mq.producerGroup = PID_example
canal.mq.maxRetryTimes = 3
canal.mq.batchSize = 16384
canal.mq.maxRequestSize = 1048576
canal.mq.sendTimeout = 3000
canal.mq.compressType = none
```
接下来,您需要在docker中部署mysql 8.0.30,您可以使用以下docker-compose.yml文件:
```
version: '3'
services:
mysql:
image: mysql:8.0.30
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=canal
- MYSQL_PASSWORD=canal
```
最后,您需要在docker中部署rabbitmq并创建一个消息队列,可以使用以下docker-compose.yml文件:
```
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
ports:
- 5672:5672
- 15672:15672
```
然后,您可以使用canal同步mysql到rabbitmq,只需将上面提到的example配置文件中的canal.mq.topic设置为您创建的rabbitmq队列名称即可。
希望能帮到您!
阅读全文