金融平台实时算息服务揭秘

2019-01-13  本文已影响0人  InsideEvil

金融实时算息服务揭秘

一、背景:金融类产品的用户对自己在APP的资产信息都极为敏感,确保用户资产高准确性,高实时,高稳定已经成为一项重要的系统化需求,比如用户下单,支付,提现等操作都会发生大量资产变动情况,如何能保证订单变动后的资产实时计算,变动消息处理顺序与用户操作顺序强一致性都是我们要面临的问题。

二、算息服务技术选型:

图中可看出消息的生产者都是单实例产出的,可以保证消息的顺讯性,但是当有多个消费者时,相当于多个线程在处理消息,所以顺讯一致性被打破。
针对这一问题我们采用redis锁的方式来实现消息处理的一致性,在生产者发送消息时在redis存放固定key的消息序号,key的形式为:memberId#orderNo,value则是序号 + 处理结束标示,每次消息处理判断上次的序号是否是本次序号-1且处理结束标示为已结束。如果满足则开始处理逻辑

五、最后
目前这一套算息系统运行稳定,但还存在一些问题,例如当订单被全量修改一个update_time时将会导致大量无用数据涌入队列并到达storm计算,会严重影响正常业务的计算,会导致用户资产在下完单后没有变化的情况。还有以后随着后续订单量和用户量逐步上升系统压力也随之变大,这都是之后要面临的问题,提前做好预备方案势在必行。

上一篇 下一篇

猜你喜欢

热点阅读