论文部分内容阅读
现如今互联网高速发展,网民的数量急剧增加,出现了一大趋势。出门使用现金流量的人越来越少,大多数人选择网上支付。针对于这样的现状,同时也为了提高现有北京移动客户的活跃性,分享和推广北京移动微信公众号和电子商务渠道,北京移动推出了自己的支付网关。这套网关系统实现了流量的货币化以及各个渠道支付的手段,流量红包项目则是流量货币化中的一个首要角色。项目作用旨在推广流量红包活动使北京移动用户之间可进行流量分享,积分兑换,流量购买,为支付网关的做第一层铺垫,支撑支付网关流量及积分货币化。然而实现这一套系统需要面对大量移动用户所带来的高并发场景。所谓高并发,是指在同一时刻有多个线程访问了同一个数据资源。通俗的讲,就是在同一时刻不同用户访问同一资源的问题。一般而言,高并发带来的是系统资源的耗尽,服务器压力过大造成宕机。所以整套红包系统所面临的问题主要集中两点:第一点,成千上万的访问请求对服务器,数据库以及整个系统带来巨大压力。第二点,针对于抢红包来说,如何避免在并发场景下,多个用户在同一时间抢同一个红包所带来的数据脏读。通俗的说法就是多个用户抢到了同一个红包。在传统的高并发抢红包应对方法上,一般的使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器等。在高并发架构方面,通常采用缓存,数据库集群以及负载均衡的方式。而面对抢红包的场景,传统方法使用的是线程同步锁synchronized的机制来实现。然而,针对于北京移动流量红包系统来说,使用传统的解决方式便暴露了其弊端,首先传统的方式已经无法很好地承载如此大量访问的并发,其次传统的synchronized锁的方式由于其单通道的特点,在用户访问数量达到一定数量时,效率太低。对此,本文提出了一套比传统架构更加稳定并且行之有效的架构体系,使整套系统不仅在响应时间上大大低于传统系统,而且单位时间内处理的请求数量(吞吐量)也得以提高,这使得整套系统在单位时间内分发红包数量以及抢红包数量上有了极大的提高。然而,在并发领域,多么好的架构也难以完全避免服务器宕机的情况出现,所以本文提出了一种以自适应预测算法的方式来优化服务器宕机的问题。同时,优化了传统系统方式使用synchronized锁效率低的特点。综上,本文的优化提升在于:1.提出了一套优于传统高并发的架构模式,提高了系统的整体性能。2.在解决红包并发机制时,使用一种区别于synchronized锁的原子操作方式来实现。3.提出自适应算法来解决流量红包在高并发场景中的系统稳定性和可用性。