Updated Canal Kafka RocketMQ QuickStart (markdown)

agapple
2018-11-25 20:48:24 +08:00
parent 2869137849
commit d0ac50d626

@@ -46,6 +46,13 @@ canal.instance.master.address=192.168.1.20:3306
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
...
# mq config
canal.mq.topic=example
canal.mq.partition=0
# hash partition config
#canal.mq.partitionsNum=3
#库名.表名: 唯一主键,多个表之间用逗号分隔
#canal.mq.partitionHash=mytest.person:id,mytest.role:id
#################################################
```
@@ -57,55 +64,44 @@ canal.instance.dbPassword = canal
# 可选项: tcp(默认), kafka, RocketMQ
canal.serverMode = kafka
# ...
```
其他详细参数可参考[Canal AdminGuide](https://github.com/alibaba/canal/wiki/AdminGuide)
#### c. 修改mq配置文件`vi /usr/local/canal/conf/mq.yml`
```
# kafka/rocketmq 集群配置: 192.168.1.117:9092,192.168.1.118:9092,192.168.1.119:9092
servers: 192.168.1.117:9092
retries: 0
batchSize: 16384
lingerMs: 1
bufferMemory: 33554432
canal.mq.servers = 127.0.0.1:6667
canal.mq.retries = 0
canal.mq.batchSize = 16384
canal.mq.maxRequestSize = 1048576
canal.mq.lingerMs = 1
canal.mq.bufferMemory = 33554432
# Canal的batch size, 默认50K, 由于kafka最大消息体限制请勿超过1M(900K以下)
canalBatchSize: 50
canal.mq.canalBatchSize = 50
# Canal get数据的超时时间, 单位: 毫秒, 空为不限超时
canalGetTimeout: 100
flatMessage: true
canalDestinations:
- canalDestination: example
topic: example
partition: 1
# #对应topic分区数量
# partitionsNum: 3
# partitionHash:
# #库名.表名: 唯一主键
# mytest.person: id
canal.mq.canalGetTimeout = 100
# 是否为flat json格式对象
canal.mq.flatMessage = true
canal.mq.compressionType = none
canal.mq.acks = all
```
## mq.yml参数说明
## mq相关参数说明
| 参数名 | 参数说明 | 默认值 |
|-------|-----------|-------|
| servers | kafka为bootstrap.servers <br> rocketMQ中为nameserver列表 | 127.0.0.1:6667 |
| retries | 发送失败重试次数 | 0 |
| batchSize | kafka为`ProducerConfig.BATCH_SIZE_CONFIG` <br> rocketMQ无意义 | 16384 |
| lingerMs | kafka为`ProducerConfig.LINGER_MS_CONFIG` <br> rocketMQ无意义 | 1 |
| bufferMemory | kafka为`ProducerConfig.BUFFER_MEMORY_CONFIG` <br> rocketMQ无意义 | 33554432 |
| producerGroup | kafka无意义 <br> rocketMQ为ProducerGroup名 | Canal-Producer |
| canalBatchSize | 获取canal数据的批次大小 | 50 |
| canalGetTimeout | 获取canal数据的超时时间 | 100 |
| flatMessage | 是否为json格式 <br> 如果设置为false,对应MQ收到的消息为protobuf格式<br>需要通过CanalMessageDeserializer进行解码 | true |
| CanalDestinations | 通道定义,父级目录 | -- |
| CanalDestination | 通道名称 | 无 |
| topic | mq里的topic名 | 无 |
| partition | 单队列模式的分区下标, | 1 |
| partitionsNum | 散列模式的分区数 | 无 |
| partitionHash | 散列规则定义 <br> 库名.表名 : 唯一主键,比如mytest.person: id | 无 |
| canal.mq.servers | kafka为bootstrap.servers <br> rocketMQ中为nameserver列表 | 127.0.0.1:6667 |
| canal.mq.retries | 发送失败重试次数 | 0 |
| canal.mq.batchSize | kafka为`ProducerConfig.BATCH_SIZE_CONFIG` <br> rocketMQ无意义 | 16384 |
| canal.mq.maxRequestSize | kafka为`ProducerConfig.MAX_REQUEST_SIZE_CONFIG` <br> rocketMQ无意义 | 1048576 |
| canal.mq.lingerMs | kafka为`ProducerConfig.LINGER_MS_CONFIG` <br> rocketMQ无意义 | 1 |
| canal.mq.bufferMemory | kafka为`ProducerConfig.BUFFER_MEMORY_CONFIG` <br> rocketMQ无意义 | 33554432 |
| canal.mq.producerGroup | kafka无意义 <br> rocketMQ为ProducerGroup名 | Canal-Producer |
| canal.mq.canalBatchSize | 获取canal数据的批次大小 | 50 |
| canal.mq.canalGetTimeout | 获取canal数据的超时时间 | 100 |
| canal.mq.flatMessage | 是否为json格式 <br> 如果设置为false,对应MQ收到的消息为protobuf格式<br>需要通过CanalMessageDeserializer进行解码 | true |
| --- | --- | --- |
| canal.mq.topic | mq里的topic名 | 无 |
| canal.mq.partition | 单队列模式的分区下标, | 1 |
| canal.mq.partitionsNum | 散列模式的分区数 | 无 |
| canal.mq.partitionHash | 散列规则定义 <br> 库名.表名 : 唯一主键,比如mytest.person: id | 无 |
其他详细参数可参考[Canal AdminGuide](https://github.com/alibaba/canal/wiki/AdminGuide)
### 3.4 启动
```