暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a V95 kafka consumer功能优化

努力的贾维斯 2022-06-14
523

相比较于V86版本 GBase 8a V95版本在如下几个方面做出了优化

1.1.1 支持参数自动检查

单机参数,_gbase_kafka_transaction_mode = 1

所有参数设置上的问题,程序都会在start kafka consumer时自动检测,按命令给出的错误提示修改参数即可。

集群参数 gcluster_kafka_consumer_enable=1

gcluster_kafka_parallel_commit必须设置为1,也就是kafka consumer不使用多线程往单机下发数据。 设置为其他值会造成单机主备分片不一致的严重问题!!!

注:支持JSON和PUREDATA两种格式,后者必须与Rtsync组合使用。

1.1.2 支持非全列更新

原先kafka consumer要求JSON里的update操作必须带出所有列的值,无论变更与否,现在已支持,consumer遇到这种情况,会先根据JSON里的主键去8A库里查询这一行的所有列的值,然后把要更新的列替换为新值,再根据主键执行delete,最后insert一行。

需配置参数:

gcluster_kafka_ignore_pos_field = 1  气象局的producer不支持POS,因此配置这个参数让consumer不检查POS。

_t_gcluster_kafka_ignore_when_update_not_hit = 1  当查询没没命中时,consumer忽略当前这个操作,不对其进行同步。

这种情况下,JSON里的OP_TYPE="UN",而不是"U"。

2.  增加统计功能,统计每个批次的数据在kafka consumer环节的延迟时间

需要配置参数:

gcluster_kafka_consumer_latency_time_statistics = 1

打开参数后,consumer会对checkpoint table的列数进行扩充,增加三列,分别是: 本批数据被consumer接收到时的时间、consumer对本批数据完成提交的时间、本批次数据包含多少个dml操作。

3.  支持对字符串中的0进行转义,转为“\0”。

招行项目偶发性出现字符串中包含0(注意不是 '\'+'0'),造成consumer最终拼写的sql被这个0截断。

需要配置参数 gcluster_kafka_consumer_escape_zero=1.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论