中青在线

来源:网络 关键字:微信红包也用消息服务? 更新时间:2018-12-18 22:46:37
延伸:
本文除了聚合《微信红包也用消息服务?》,免费提供的有关微信红包也用消息服务?的内容之一,已有不少的网友认为此答案对自己有帮助!
    www.chaoyuyun.com
    微信红包也用消息服务?
    说起微信红包,现在人们都不陌生,平时微信上抢个几块钱,能开心一整天。微信红包跟消息服务有什么关系,对于我们使用者来说能发红包能抢红包,能看到大家抢了多少就可以了,还管什么消息服务?短短几秒发个红包,您想了解微信红包背后的故事吗?腾讯云消息服务可以防止消息永不丢失(红包),红包系统的分布式事务性的问题让大家很头痛,微信架构组在红包系统引入了消息服务,避免分布式事务增加对系统的开销。消息服务红包队列,保证了红包消息的可靠存储、传递,实时落盘写三份保证数据不丢。资金入账失败时可多次重试,避免入账失败后rollback回写和频繁轮询DB。我们以春晚微信红包案例来看看微信红包跟消息服务有什么关系?春晚红包活动涉及四个大型系统的联动,包括微信、微信支付、红包系统和财付通系统。以下简单介绍各个系统:红包系统:个人红包的发、抢、拆和列表查看;财付通系统:包括支付订单、异步入账流水的高性能存储,用户余额和账单的实时展示;微信接入:确保微信用户公网接入的质量;微信支付:在线交易的入口。
    类似红包系统的分布式事务是关注的热点。举一个典型的例子,『用户A给用户B发了10
    www.chaoyuyun.com
    元的红包』,有以下步骤:从A帐号中把余额读出来;对A帐号做减法操作(减10元);把结果写回A帐号中(一次确认);从B帐号中把余额读出来;拆开A发送给B的红包,读出数值;对B帐号做加法操作(加10元);把结果写到B帐号中为了保证数据的一致性,上述步骤只有两种结果:都成功完成或者都不成功执行回滚。而且这个操作的过程中,对A、B帐号还需引入分布式锁机制来避免脏数据的问题。在微信红包这个庞大的分布式集群内,事情将变的异常复杂。微信红包系统引入了腾讯云消息服务以避免分布式事务增加对系统的开销。同样A用户给B用户发10元红包的场景,下面介绍引入消息服务后的新策略。在上述案例中的第七步,B用户拆开了红包,红包里有10块钱。在做入账操作时由于当天并发压力大,常出现入账失败的情况。红包团队把入帐失败的请求,全部转入消息服务。当B用户更新账户余额失败时,手机客户端显示等待状态。随后账户系统将不断从消息服务重新拉取重试此更新操作。消息服务保证了这10元的入账消息永远不丢,直至它被取出。在除夕当天,用户红包的发、拆、入账等动作,转化为了十亿级别的海量请求。若使用传统的事务方式,会放大并发压力使系统崩溃。消息服务消息队列保证了红包消息的可靠存储、传递,实时写三份保证数据不丢。资金入账失败时可多次重试,避免失败回滚和频繁轮询数据库等传统方式的弊端。是不是涨知识了,这只是消息服务的某一使用场景,还有很多场景,您能想到,您想不到的都有,如果您想了解更多消息服务或腾讯云的产品信息,请直接联系我们上海国经,点击链接,即可与国经网络的腾讯云产品工程师直接对话,选择腾讯云,选择上海国经。