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)

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317809.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

登录后才能评论