Updated Canal Kafka RocketMQ QuickStart (markdown)

agapple
2018-12-28 18:35:42 +08:00
parent fd7fffc878
commit acdf3ac344

@@ -100,9 +100,32 @@ canal.mq.acks = all
| canal.mq.flatMessage | 是否为json格式 <br> 如果设置为false,对应MQ收到的消息为protobuf格式<br>需要通过CanalMessageDeserializer进行解码 | true |
| --- | --- | --- |
| canal.mq.topic | mq里的topic名 | 无 |
| canal.mq.dynamicTopic | mq里的动态topic规则, 1.1.3版本支持 | 无 |
| canal.mq.partition | 单队列模式的分区下标, | 1 |
| canal.mq.partitionsNum | 散列模式的分区数 | 无 |
| canal.mq.partitionHash | 散列规则定义 <br> 库名.表名 : 唯一主键,比如mytest.person: id | 无 |
| canal.mq.partitionHash | 散列规则定义 <br> 库名.表名 : 唯一主键,比如mytest.person: id <br> 1.1.3版本支持新语法,见下文 | 无 |
### canal.mq.dynamicTopic 表达式说明
canal 1.1.3版本之后, 支持配置格式:schema.table,多个配置之间使用逗号分隔
* 例子1:test\\\\.test 指定匹配的单表,发送到以 test\\\\.test为名字的topic上
* 例子2:.\\\\..\* 匹配所有表,每个表都会发送到各自表名的topic上
* 例子3:test 指定匹配对应的库,一个库的所有表都会发送到库名的topic上
* 例子4:test\\\\.* 指定匹配的表达式,针对匹配的表会发送到各自表名的topic上
* 例子5:test,test1\\\\.test1,指定多个表达式,会将test库的表都发送到test的topic上,test1\\\\.test1的表发送到对应的test1\\\\.test1 topic上,其余的表发送到默认的canal.mq.topic值
### canal.mq.partitionHash 表达式说明
canal 1.1.3版本之后, 支持配置格式:schema.table:pk1^pk2,多个配置之间使用逗号分隔
* 例子1:test\\\\.test:pk1^pk2 指定匹配的单表,对应的hash字段为pk1 + pk2
* 例子2:.\\\\..\*:id 正则匹配,指定所有正则匹配的表对应的hash字段为id
* 例子3:.\\\\..\*:$pk$ 正则匹配,指定所有正则匹配的表对应的hash字段为表主键(自动查找)
* 例子4: 匹配规则啥都不写,则默认发到0这个partition上
* 例子5:.\\\\..\* ,不指定pk信息的正则匹配,将所有正则匹配的表,对应的hash字段为表名
* 按表hash: 一张表的所有数据可以发到同一个分区,不同表之间会做散列 (会有热点表分区过大问题)
* 例子6: test\\\\.test:id,.\\\\..\* , 针对test的表按照id散列,其余的表按照table散列
大家可以结合自己的业务需求,设置匹配规则,多条匹配规则之间是按照顺序进行匹配(命中一条规则就返回)
其他详细参数可参考[Canal AdminGuide](https://github.com/alibaba/canal/wiki/AdminGuide)