canal.mq.flatMessage参数

canal.mq.flatMessage

是否为json格式
如果设置为false,对应MQ收到的消息为protobuf格式
需要通过CanalMessageDeserializer进行解码

canal.mq.flatMessage = true 生产到kafka的消息就是json的, 否则就是protobuf二进制的

mlanuch文档翻译

[TOC]

mlanuch

使用此工具,您可以快速启动并监视本地计算机上的MongoDB环境。 它支持独立服务器,副本集和分片群集的各种配置。 单个节点或节点组可以轻松停止并重新启动。

除了下面列出的mlaunch的所有列出的参数之外,您还可以传递mongosmongod二进制文件可以理解的任意选项,mlaunch会传递正确的参数给mongosmongod二进制文件。 这包括-f--config选项,以传递带有更多选项的配置文件。

Canal dynamicTopic问题

未来同事跑了几个月的canal突然报下面的错, 使用了dynamicTopic. 其实我没有用过dynamicTopic, 只能搜一搜issue

关于dynamicTopic和partitionHash的说明

canal.mq.dynamicTopic 表达式说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>canal 1.1.3版本之后, 支持配置格式:schema 或 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值
>为满足更大的灵活性,允许对匹配条件的规则指定发送的topic名字,配置格式:topicName:schema 或 topicName:schema.table
>
>例子1: test:test\\.test 指定匹配的单表,发送到以test为名字的topic上
>例子2: test:.*\\..* 匹配所有表,因为有指定topic,则每个表都会发送到test的topic下
>例子3: test:test 指定匹配对应的库,一个库的所有表都会发送到test的topic下
>例子4:testA:test\\.* 指定匹配的表达式,针对匹配的表会发送到testA的topic下
>例子5:test0:test,test1:test1\\.test1,指定多个表达式,会将test库的表都发送到test0的topic下,test1\\.test1的表发送到对应的test1的topic下,其余的表发送到默认的canal.mq.topic值
>
>大家可以结合自己的业务需求,设置匹配规则,建议MQ开启自动创建topic的能力
>

>

canal.mq.partitionHash 表达式说明

1
2
3
4
5
6
7
8
9
10
>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

TiDB Syncer不同表名库名同步且支持pt-osc改表

TiDB Syncer不同表名库名同步且支持pt-osc改表

mysql端库名叫sysbench, 表名sbtest11
tidb端库名ptosc_sysbench,表名ptosc_sbtest11

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[[replicate-do-table]]
db-name = "ptosc_sysbench"
tbl-name = "ptosc_sbtest11"
[[replicate-do-table]]
db-name = "ptosc_sysbench"
tbl-name = "~.*_sbtest11_new"
[[replicate-do-table]]
db-name = "ptosc_sysbench"
tbl-name = "~.*_sbtest11_old"
[[route-rules]]
pattern-schema = "sysbench"
pattern-table = "sbtest11"
target-schema = "ptosc_sysbench"
target-table = "ptosc_sbtest11"

MGR参数之group_replication_ip_whitelist

img

尝试将10.133.1.46加入192.168.2.224的集群失败

需要设置参数group_replication_ip_whitelist

此参数虽然是动态参数, 但是要使之生效需要节点重新加入集群

To specify a whitelist manually, use the group_replication_ip_whitelist option. You cannot change the whitelist on a server while it is an active member of a replication group. If the member is active, you must issue a STOP GROUP_REPLICATION statement before changing the whitelist, and a START GROUP_REPLICATION statement afterwards.


Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2020 Fan() All Rights Reserved.

访客数 : | 访问量 :