GBase 8a kafka consumer多partition版本使用方法和功能变更

多partition模式:

 

9.5.3.28.2版本之后,kafka consumer同步支持多partition。该功能由参数gcluster_kafka_consumer_support_multi_partition控制,1开启,0关闭。开启此参数后,创建和启动consumer时会自动获取kafka端topic的partition数量,在information_schema.kafka_consumer_status等系统表里会展示相关信息。不开启此参数,对partition数>1的topic创建transaction consumer时会报错。

使用此模式时,要保证每个partition里的数据不存在主键上的交集,因为consumer对于每个partition不是顺序消费而是随机的,因此不能保证每个dml操作的先后顺序,若是主键存在交集会导致每次入库的结果都不一致,使用时需要谨慎。

对于重复消息的判断,各个partition之间是独立的,例如三个partition都出现了pos号为00000000010000000001的json消息,那么这三条消息都会被消费。但是在计算dml提交总数时,是计算的总和,例如设置gcluster_kafka_batch_commit_dml_count=100000,那么一次提交的dml操作数量是三个partition加起来100000。

kafka_consumer_statistics表:

开启gcluster_kafka_consumer_latency_time_statistics参数(设置为1),便可使kafka_consumer_statistics表记录一批dml操作的开始和提交时间,以便观察性能数据。更新多partition版本后,此表不再记录批次数据,只显示延迟时间。

gbase> desc information_schema.kafka_consumer_statistics;

+-------------+--------------+------+-----+---------------------+-------+

| Field       | Type         | Null | Key | Default             | Extra |

+-------------+--------------+------+-----+---------------------+-------+

| CONSUMER    | varchar(128) | NO   |     |                     |       |

| IP          | varchar(64)  | NO   |     |                     |       |

| START_TIME  | datetime     | NO   |     | 0000-00-00 00:00:00 |       |

| COMMIT_TIME | datetime     | NO   |     | 0000-00-00 00:00:00 |       |

| I           | bigint(21)   | NO   |     | 0                   |       |

| D           | bigint(21)   | NO   |     | 0                   |       |

| U           | bigint(21)   | NO   |     | 0                   |       |

+-------------+--------------+------+-----+---------------------+-------+

7 rows in set (Elapsed: 00:00:00.01)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值