GBase 8a在使用kafka consumer数据同步功能使用中的参数配置

使用kafka consumer需要按照如下方式进行配置,可变更参数的配置参考补充说明。

1.       配置gcluster参数

/opt/gcluster/config/gbase_8a_gcluster.cnf

_gbase_transaction_disable=1(注意一定不要用0)

gcluster_lock_level=10(不建议用2)

_gcluster_insert_cache_buffer_flag=1

gcluster_assign_kafka_topic_period=20

gcluster_kafka_max_message_size=1000000

gcluster_kafka_batch_commit_dml_count=100000

gcluster_kafka_local_queue_size=210000

gcluster_kafka_consume_batch=100

gcluster_kafka_user_allowed_max_latency=15

说明(可变更参数)

l   gcluster_assign_kafka_topic_period,自动接管consumer的时间周期,单位为秒,例如A节点宕机了,最大需要等待gcluster_assign_kafka_topic_period秒之后,A节点负责的同步任务会被其他节点接管。最小值20s,最大值120s。

l   gcluster_kafka_max_message_size,从kafka topic获得消息的最大长度,单位为字节,最大值1000000000字节,这个值需要大于等于kafka server的配置(message.max.bytes),否则可能造成消费问题,即,如果kafka队列中存在一条消息,其大小超过gcluster_kafka_max_message_size就会造成消费卡住。

l   gcluster_kafka_batch_commit_dml_count,一次提交dml操作的数量,适当调大能明显提高性能,但是如果一个topic涉及的表很多(几百个表)则建议该参数调小,表越多越应该调小,调小的目的是使得一次提交命中的表少一些,具体需要结合具体用户场景、同步速度、资源占用情况具体对待。 未来启用新事务后,表数量多对性能的影响会降低,会再次更新手册。需要注意的是,此参数是一个意向值,程序未必会严格按照此参数来提交,比如如果一个事务包含大量DML操作,那么程序必须确保事务完整性;再比如从kafka取消息、解析消息的速度慢于往单机提交数据的速度,那么程序也会选择先提交,而不是一定要等待满足gcluster_kafka_batch_commit_dml_count参数。

l   gcluster_kafka_user_allowed_max_latency,允许消息在8A集群层缓存多长时间,超时之后必须马上提交,单位是毫秒。此参数与gcluster_kafka_batch_commit_dml_count作用类似,都是决定什么时候提交的。多攒一些数据再提交,有利于降低磁盘占用,如果用户对数据延迟不太敏感,而对磁盘占用比较敏感,可以通过这个参数来调节。典型值一般可以设置为50000~20000,需要注意提交动作本身也需要消耗时间。

l   gcluster_kafka_local_queue_size,储存dml操作的队列的长度,建议至少为gcluster_kafka_batch_commit_dml_count的二倍多一些。

l   gcluster_kafka_consume_batch,consumer一次读取kafka消息的条数。如果kafka队列里的消息size较小,可以设大,反之设小,此参数对性能的影响不大,所以一般没必要设太大,建议设为10~1000。

2.       配置gnode参数

/opt/gnode/config/gbase_8a_gbase.cnf

_gbase_transaction_disable=1(注意一定不要用0)

gbase_tx_log_mode=ONLY_SPECIFY_USE(注意一定不要用USE,STANDARD_TRANS)

gbase_buffer_insert=1024M 

gbase_tx_log_flush_time=5

说明(可变更参数)

l   gbase_buffer_insert,insert buffer的大小,随gcluster_kafka_batch_commit_dml_count的设置进行调整,如果数据量大,且consumer任务多,建议调大。需要保证单机insert buffer足够,否则会导致异常。

l   gbase_tx_log_flush_time,单机内存数据刷新频率,单位为秒。建议设为5秒。

注意

l   如果现场之前使用的是"gbase_tx_log_mode=USE,STANDARD_

TRANS"这种配置(之前开发过程中使用事务模式的配置,后面已放弃这种配置),则在修改参数“gbase_tx_log_mode= ONLY_SPECIFY_USE”后,最好把之前同步数据涉及的表重导一遍数据(否则可能会报错)。如果数据量较大也可以配置gnode参数"_gbase_bsi_check_

disable=1"绕过这个检查报错逻辑(这种情况产生的报错并不会造成什么问题。关掉检查的缺点是可能会在后面如果有其他bug引起错误后,无法及时报错。)

l   各节点的配置都要一致,只改动部分节点可能产生未知错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值