修改HBase的rowkey设计把应用的QPS从5W提升到50W

摘要: 正确设计Hbase的rowkey可以让你的应用飞起来,前提是你需要了解一些Hbase的存储机制。

UTT是Aliexpress的营销消息运营平台,运营希望促销活动时APP消息推送的QPS达到34W。

UTT刚接入APP消息推送时,QPS只能达到5W,离运营的要求有很大的距离。

通过改造,QPS达到了50W,其中最主要的改造是对Hbase的rowkey的改造。

首先介绍一下UTT大致工作流程:

1、运营人员在UTT的小二控制台配置运营任务(job),在任务中设置商品选择参数、目标人群参数和消息发送渠道;

2、UTT调用算法平台计算出要发送的消息,数据生成在阿里云飞天系统的云梯表中;

3、UTT把云梯表中的数据导入到hbase,并生成N个可以并发执行的发送任务(segment),segment的信息存储在mysql表中;

4、UTT按计划发送时间捞取segment,把存储在Hbase中的segment对应的消息读取出来调用阿里巴巴移动消息推送网关发送出去。

步骤1、2、3是提前执行的,我们要优化的是步骤4。

改造中,我们主要做了如下几件事:

1、修改了Hbase的rowkey规则和数据读取方式;

2、优化了记录发送进度的逻辑;

3、优化了消息发送到阿里巴巴移动消息推送网关的流程。

其中最主要的是对Hbase的rowkey的修改。

改造前的rowkey设计:

rowkey=segmentSalt+”_"+dataIndexInSegment+”_”+segmentId+”_”+jobTime+”_”+jobId

说明如下:

job:job对应运营在后台页面配置的任务,一个job可能多次运行,用jobId+jobTime可以唯一标识一个job的一次发送任务。

segment:一个job的一次发送任务拆分为多个segment,每个segment对应10万条消息。多个segment的消

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值