mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Updated Canal Kafka RocketMQ QuickStart (markdown)
@@ -2,6 +2,8 @@
|
||||
canal 1.1.1版本之后, 默认支持将canal server接收到的binlog数据直接投递到MQ, 目前默认支持的MQ系统有:
|
||||
* kafka: [https://github.com/apache/kafka](https://github.com/apache/kafka)
|
||||
* RocketMQ : [https://github.com/apache/rocketmq](https://github.com/apache/rocketmq)
|
||||
* RabbitMQ : [https://github.com/rabbitmq/rabbitmq-server](https://github.com/rabbitmq/rabbitmq-server)
|
||||
* pulsarmq : [https://github.com/apache/pulsar](https://github.com/apache/pulsar)
|
||||
|
||||
## 环境版本
|
||||
* 操作系统:CentOS release 6.6 (Final)
|
||||
@@ -17,6 +19,8 @@ canal 1.1.1版本之后, 默认支持将canal server接收到的binlog数据直
|
||||
|
||||
* Kafka安装参考:[Kafka QuickStart](https://github.com/alibaba/canal/wiki/Kafka-QuickStart)
|
||||
* RocketMQ安装参考:[RocketMQ QuickStart](https://rocketmq.apache.org/docs/quick-start)
|
||||
* RabbitMQ安装参考:[RabbitMQ QuickStart](https://www.rabbitmq.com/download.html)
|
||||
* PulsarMQ安装参考:[PulsarMQ QuickStart](https://pulsar.apache.org/docs/2.2.1/getting-started-docker/)
|
||||
|
||||
## 三、 安装canal.server
|
||||
|
||||
@@ -28,8 +32,8 @@ canal 1.1.1版本之后, 默认支持将canal server接收到的binlog数据直
|
||||
|
||||
```
|
||||
mkdir -p /usr/local/canal
|
||||
cp canal.deployer-1.1.1.tar.gz /usr/local/canal
|
||||
tar -zxvf canal.deployer-1.1.1.tar.gz
|
||||
cp canal.deployer-1.1.6.tar.gz /usr/local/canal
|
||||
tar -zxvf canal.deployer-1.1.6.tar.gz
|
||||
```
|
||||
|
||||
### 3.3 配置修改参数
|
||||
@@ -63,28 +67,16 @@ canal.mq.partition=0
|
||||
#### b. 修改canal 配置文件`vi /usr/local/canal/conf/canal.properties `
|
||||
```
|
||||
# ...
|
||||
# 可选项: tcp(默认), kafka, RocketMQ
|
||||
# 可选项: tcp(默认), kafka,RocketMQ,rabbitmq,pulsarmq
|
||||
canal.serverMode = kafka
|
||||
# ...
|
||||
# kafka/rocketmq 集群配置: 192.168.1.117:9092,192.168.1.118:9092,192.168.1.119:9092
|
||||
canal.mq.servers = 127.0.0.1:6667
|
||||
canal.mq.retries = 0
|
||||
# flagMessage模式下可以调大该值, 但不要超过MQ消息体大小上限
|
||||
canal.mq.batchSize = 16384
|
||||
canal.mq.maxRequestSize = 1048576
|
||||
# flatMessage模式下请将该值改大, 建议50-200
|
||||
canal.mq.lingerMs = 1
|
||||
canal.mq.bufferMemory = 33554432
|
||||
|
||||
# Canal的batch size, 默认50K, 由于kafka最大消息体限制请勿超过1M(900K以下)
|
||||
canal.mq.canalBatchSize = 50
|
||||
# Canal get数据的超时时间, 单位: 毫秒, 空为不限超时
|
||||
canal.mq.canalGetTimeout = 100
|
||||
# 是否为flat json格式对象
|
||||
canal.mq.flatMessage = false
|
||||
canal.mq.compressionType = none
|
||||
canal.mq.acks = all
|
||||
# kafka消息投递是否使用事务
|
||||
canal.mq.transaction = false
|
||||
```
|
||||
|
||||
## mq相关参数说明 (<=1.1.4版本)
|
||||
@@ -127,9 +119,9 @@ canal.mq.transaction = false
|
||||
|
||||
| 参数名 | 参数说明 | 默认值 |
|
||||
|------|-----------|-------|
|
||||
| canal.aliyun.accessKey | 阿里云ak | 空值 |
|
||||
| canal.aliyun.secretKey | 阿里云sk | 空值 |
|
||||
| canal.aliyun.uid | 阿里云uid | 空值 |
|
||||
| canal.aliyun.accessKey | 阿里云ak | 无 |
|
||||
| canal.aliyun.secretKey | 阿里云sk | 无 |
|
||||
| canal.aliyun.uid | 阿里云uid | 无 |
|
||||
| canal.mq.flatMessage | 是否为json格式 <br> 如果设置为false,对应MQ收到的消息为protobuf格式<br>需要通过CanalMessageDeserializer进行解码 | false |
|
||||
| canal.mq.canalBatchSize | 获取canal数据的批次大小 | 50 |
|
||||
| canal.mq.canalGetTimeout | 获取canal数据的超时时间 | 100 |
|
||||
@@ -153,26 +145,32 @@ canal.mq.transaction = false
|
||||
|------|-----------|-------|
|
||||
| rocketmq.producer.group | rocketMQ为ProducerGroup名 | test |
|
||||
| rocketmq.enable.message.trace | 是否开启message trace | false |
|
||||
| rocketmq.customized.trace.topic | message trace的topic | 空值 |
|
||||
| rocketmq.namespace | rocketmq的namespace | 空值 |
|
||||
| rocketmq.customized.trace.topic | message trace的topic | 无 |
|
||||
| rocketmq.namespace | rocketmq的namespace | 无 |
|
||||
| rocketmq.namesrv.addr | rocketmq的namesrv地址 | 127.0.0.1:9876 |
|
||||
| rocketmq.retry.times.when.send.failed | 重试次数 | 0 |
|
||||
| rocketmq.vip.channel.enabled | rocketmq是否开启vip channel | false |
|
||||
| rocketmq.tag | rocketmq的tag配置 | 空值 |
|
||||
| --- | --- | --- |
|
||||
| canal.mq.vhost= | rabbitMQ配置 | 无 |
|
||||
| canal.mq.exchange= | rabbitMQ配置 | 无 |
|
||||
| canal.mq.username= | rabbitMQ配置 | 无 |
|
||||
| canal.mq.password= | rabbitMQ配置 | 无 |
|
||||
| canal.mq.aliyunuid= | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.host | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.virtual.host | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.exchange | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.username | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.password | rabbitMQ配置 | 无 |
|
||||
| rabbitmq.deliveryMode | rabbitMQ配置 | 无 |
|
||||
| --- | --- | --- |
|
||||
| pulsarmq.serverUrl | pulsarmq配置 | 无 |
|
||||
| pulsarmq.roleToken | pulsarmq配置 | 无 |
|
||||
| pulsarmq.topicTenantPrefix | pulsarmq配置 | 无 |
|
||||
| --- | --- | --- |
|
||||
| canal.mq.topic | mq里的topic名 | 无 |
|
||||
| canal.mq.dynamicTopic | mq里的动态topic规则, 1.1.3版本支持 | 无 |
|
||||
| canal.mq.partition | 单队列模式的分区下标, | 1 |
|
||||
| canal.mq.enableDynamicQueuePartition | 动态获取MQ服务端的分区数,如果设置为true之后会自动根据topic获取分区数替换canal.mq.partitionsNum的定义,目前主要适用于RocketMQ | false |
|
||||
| canal.mq.partitionsNum | 散列模式的分区数 | 无 |
|
||||
| canal.mq.dynamicTopicPartitionNum | mq里的动态队列分区数,比如针对不同topic配置不同partitionsNum | 无 |
|
||||
| canal.mq.partitionHash | 散列规则定义 <br> 库名.表名 : 唯一主键,比如mytest.person: id <br> 1.1.3版本支持新语法,见下文 | 无 |
|
||||
|
||||
|
||||
### canal.mq.dynamicTopic 表达式说明
|
||||
|
||||
canal 1.1.3版本之后, 支持配置格式:schema 或 schema.table,多个配置之间使用逗号或分号分隔
|
||||
|
||||
Reference in New Issue
Block a user