APP下载

电视互动应用中大并发的处理

2015-05-05杜歆文瞿向雷

电视技术 2015年16期
关键词:金币概率服务器

杜歆文,瞿向雷,戴 骏

(苏州广播电视总台 技术中心,江苏 苏州 215006)

电视互动应用中大并发的处理

杜歆文,瞿向雷,戴 骏

(苏州广播电视总台 技术中心,江苏 苏州 215006)

为了增加城市电视传媒影响力,扩大收视群体,产生用户即时互动,推进媒体融合,苏州广播电视总台开发了一款城市传媒即时互动手机应用。该项目提供实时互动、点评节目、爱心捐助、奖品兑换、游戏娱乐等功能。在研发、使用过程中,发现业务存在大并发请求的问题。针对该问题,利用云计算资源,合理规划系统架构,设计概率算法和金币发放算法,满足了业务需求,同时对系统的发展进行了规划,使系统在一段时间内能够满足业务增长。

互动;云计算;大数据;并发;概率

1 背景与意义

传统模式下的电视节目互动方式有三种,即信件、电话以及采访。信件互动的特点是信息量大,同步性相对较差;电话互动能实现同步,并且具备交流直观特点;采访互动的成本相对较高,但同样能实现同步。在数字模式下,通常采用短信、网络、数字机顶盒的形式进行互动。短信近十年已证明了这种模式的成功,但随着网络介入互动,需要研究费用更低、实时性更高、受众更多的网络模式以及如何与观众互动[1]。

借助网络互动,原来不愿意看电视的网民可能被拉到电视机前,原来只是把电视当作“背景音乐”的观众可以关注到内容上来,原来电视节目的铁杆“粉丝”可以深度参与节目,借助互联网,可以实现对收视率的拉升,既增加了电视传播的影响力,也体现了广告价值。同时,借助网络收集的大量数据,针对节目受众,分析用户行为,节目制作、传播更加契合市场需求。

目前,城市电视台尝试新媒体的方向主要有3种:第一,手机APP应用提供文字、图片、视频资讯以及电视、广播节目;第二,利用电视台的影响力、公信力为用户提供城市信息化服务;第三,利用移动互联网,电视节目与观众互动,电视和观众互相影响[2]。

针对第三点,各电视台也做了很多尝试,比如利用微博、微信增加受众并与观众互动,湖南卫视开发了“芒果圈”、“呼啦”等应用结合实时电视节目[3-4],在手机上开展互动式活动,以娱乐的形式参与节目,并形成用户与节目、用户与用户之间的互动。

2 项目需求

针对电视互动存在的问题,本项目拟研发一款针对电视互动的手机APP应用。该软件规划有如下模块:

1)摇摇看。用户使用该应用参与电视节目互动,当电视节目中出现通关密码时,用户输入通关密码可以进入该模块,摇动手机获得金币或奖品。

2)评评看。根据栏目建立评论板块,用户进入相应的板块发布评论,参与互动。评论后台打通与电视屏幕的接口,通过审核后可以在电视上显示。

3)捐捐看。该模块发布一些需要捐助的困难人士的资料,并设定一定的筹款目标,可以与帮忙类栏目相结合,用户在该模块中可以把拥有的金币捐赠给需要帮助的人,后台把金币折算成人民币捐给受捐人。

4)玩玩看。采用应用内游戏,或连接到外部游戏,使用金币进行对战,增加娱乐性及用户黏度。

5)换换看。该模块发布一系列惠民商品,用户使用金币兑换实物商品。

6)活动。展示近期的热门活动,吸引用户积极参加。

由于软件使用主要集中在晚间黄金时段,摇金币活动的持续时间定位在数分钟之内,在短时间内大量用户登录系统摇金币,这对系统软、硬件架构有极大的考验,需要针对性地研究架构和算法,解决大并发的问题。

3 相关技术

3.1 云计算

云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。

云计算在易用性、费用、部署方式等方面比传统IT有着巨大的优点,云计算使得项目能够更加专注功能及架构的设计,使得开发与运维完全分离,同时,云计算按使用量付费的模式避免了资源浪费问题,也能够快速面对高峰的业务需求。另外,可扩展性是云计算非常大的特点,随着业务增加,云计算能够不断扩展满足业务需求。

图1 系统拓扑图

云计算与“堆硬件”有本质区别。首先,传统IT方案针对业务压力时,需要根据峰值采用大量硬件设备,从规划、建设到投产,整个链条周期长、投入大,当业务发生变动时,会造成巨大浪费。其次,如果实际业务峰值超过了初始估计,服务将面临瘫痪,无法在面临业务量激增时做到“即插即用”。

3.2 大数据

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。对海量数据的挖掘必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。

大数据技术就是从各种类型的海量数据中获得有价值信息的技术,其过程包括数据采集、存储、管理、分析挖掘、可视化等技术及其集成。其特点体现为数据量特别大,数据类型繁多,对处理的速度要求高,价值密度低。

在电视行业,收视率是以样本户体现的。在大数据时代,知道整体的用户行为,了解所有的用户在想什么、需要什么,对电视制作有现实的指导意义。

4 高并发的处理

智能手机终端的发展,使得用户生成数据能力的增强,随着云计算的介入,使用数据的能力增强,其中必须要拥有有效的手段收集数据。电视互动应用既可以吸引用户收看电视,还可以在用户使用过程中收集用户数据,分析用户行为。由于该应用的用户同时为电视观众,使用时间也和电视观看重合,因此,用户数据近似认为是观众数据。

由于用户的使用和电视直播有时间上的重合性,必然带来一个问题——高并发的处理。根据项目需求,在“摇摇看”模块,电视公布通关密码,大量用户会在同一时间同时涌入系统;在“评评看”模块,新闻直播过程中一个热门话题抛出,大量用户同一时间发表自己的看法,刷新别人的评论;在互动过程中,用户打开应用验证登录的时间都十分集中,这些特点会给系统带来很大压力。不同于一般新闻软件或者社交类软件,此类应用的用户访问虽然在一天中也有起伏,但基本平稳,电视互动类应用的用户访问有着集中、量大的特点,为了保证用户正常使用、体验流畅,必须对高并发的访问进行特殊处理。

4.1 系统架构

系统部署于云端,云平台提供的弹性服务可以根据业务的变化而增加、减少系统资源,满足业务发展,避免资源浪费,同时能够快速部署、快速上线,适应互联网速度。

具体网络拓扑如图1所示。

手机客户端与后台交互通过Web Service的方式向后台接口提出请求。后台根据不同功能划分为多个功能分区,如“摇摇看”业务为功能分区1,“评评看”业务为功能分区2。请求到达反向代理服务器后,根据配置负载情况,将请求分发到各接口服务器,接口服务器经过运算返回结果给客户端。为了增加系统冗余,如图中接口服务器5和6,被反向代理服务器1和2共享,即功能分区1中向反向代理服务器1的请求和功能分区2中向反向代理服务器2的请求,按设置权重都有可能被分发到接口服务器5和6进行计算,功能分区1和2的资源使用高峰不在同一时间点,这样既增强了系统的安全性,同时也增强了系统资源的使用效率,提高了性能。

在数据库方面,设计了一主多从的模式,从数据库数据和主数据库同步。数据库服务器1作为主数据库,所有写操作都在主数据库上操作,读操作被分担到不同的从数据库2和3上。由于大部分数据库操作都是读操作,根据业务需求,从数据库可以不断扩展增加,如此架构保证了系统的扩展性。

4.2 算法设计

4.2.1 概率设计

在电视上公布通关密码的一刻,大量用户同时涌入“摇摇看”模块进行摇金币操作,因此除了要有健壮的后台架构外,算法设计也是至关重要的。

首先是概率设计。用户每次获得金币的数额应该是一个随机值,但总体金币数量又需要可控。因此,设计的概率设置如图2所示。

图2 概率设置

以图2为例,用户获得1~10个金币的概率是15%,获得10~20个金币的概率是45%,获得20~50个金币的概率是20%,获得50~70个金币和70~100个金币的概率均为10%。用户进入摇金币活动,摇动手机,手机客户端访问后台接口,接口程序根据概率设计首先确定该用户获得的金币区间,比如用户有45%的概率获得金币值10~20,然后在10~20的区间内再进行一次随机,获得的值为该用户摇得的金币。对于单个用户来说,其每次摇金币的概率满足图2分布,对于整体用户而言,所有摇金币次数应该也满足图2分布,即获得10~20金币的用户占整体用户的45%。因此只需要调整金币区间和每个区间的概率,即可控制用户整体获得金币的数量。

4.2.2 金币发放设计

通常情况下,每个用户摇动手机,向服务器请求金币,服务器按以上算法计算本次应发金币数量,并把已发放金币总额和应发放金币总额进行比较,余额充足则直接发放,余额小于该次请求金额,则只发放剩余金币。

当请求数量多时,大量请求在同一时刻到达服务器,如图3 所示。假设剩余金币仅够一次发放,在第二步操作有多个请求同时计算已发放金币,判断剩余金币是否满足发放,多个请求都判断满足发放,执行发放金币操作,记录发放金币,如此发放金币必然会超过预设值。该假设一般情况由于同时请求的概率很低,因此不会发生,当并发量大时,会造成发放无法控制。因此,计算已发放金币和判断剩余金币必须线性操作,如图4所示。

图3 同时请求发金币

图4 线性的发金币流程

按照图4所示的方式发放金币,可以保证金币发放严格按照库存进行,但同时带来一个问题,大量请求积压在等待环节,数据库变成单线程操作,用户会感受到卡顿、反应慢。如果业务能够允许部分金币超出预设值,按照图3的方式,可以很大程度改善用户性能。如果既保证性能,又保证业务的严谨性,算法就无法实现了。

既要保证客户端请求在服务器上多线程并发处理,又要保证金币数量一致性,需要采用预先生成的方式,将动态数据转化为静态数据。

在建立一个摇金币活动时,后台自动建立2张表,如图5所示,根据设定概率和发放金币总额预先生成金币表并填充数据,同时建立1张空的预生成用户表,2张表的ID均从1自增,当进行摇金币活动时,所有请求用户被插入预生成用户表,如第n个摇金币的用户插入表后返回插入行的ID值n,去预生成金币表进行比对,相同ID行即ID等于n的行所对应的金币数量为该用户获得金币数值。当预生成用户表的返回ID值大于预生成金币表的最大ID时,无法找到对应金币数量,说明金币已发放完,直接返回0金币即可。

预生成金币表预生成用户表ID金币数量ID用户1102123154759…………

图5 摇金币预生成表

由于数据库的ID自增机制保证了2张表的ID列从1开始每行连续自动增长,因此,大量用户同时对数据库表进行插入操作,依然能够保证ID的唯一性,预生成用户表的插入操作自动返回当前插入行ID值,不需要进行额外计算,预生成金币表中数据在活动开始前预先生成,节约了活动进行过程中的计算资源。整个流程无锁表操作,不会造成数据冲突,既保证了效率,也保证了数据安全。

5 问题与展望

软件的设计在目前阶段已基本能满足业务的发展,但随着用户的增长,必然会遇到性能瓶颈。当用户量达到一定规模时,还可以从以下几部分进一步优化。

1)增加接口服务器数量。按照4.1节的系统架构描述,本系统接口服务器数量可以横向任意扩展,当访问量增加时,必然需要更多服务器处理访问请求。

2)使用数据缓存系统。当请求数过多时,数据库的读写成为瓶颈,可以考虑使用Memcache或Redis等数据缓存系统,将数据库数据缓存进内存,在内存中进行读写,性能将有极大改善。

3)客户端进行缓存。可以考虑从源头上客户端应用减少请求次数,每次请求服务器返回数据包含结果数据和数据有效期,根据业务类型设置不同的数据有效期。客户端获得结果数据后缓存在手机本地,在数据有效期到达之前不再向服务器发起请求,直接从本地读取数据,如此将很大程度上减少请求数量。

[1] 陈琳娜. 新媒体时代电视节目互动研究[D].南京:南京师范大学,2011.

[2] 徐占基. TV“摇摇乐”助力城市台新媒体启航[R].北京:BIRTV台长论坛与第二届中国台网融合高峰论坛,2014.

[3] 李真明. 电视互动类APP的兴起——以湖南卫视“呼啦”APP 为例[J].新闻世界,2014(3):8-9.

[4] 向方霖. 电视台互动APP运用的问题与对策——以湖南卫视“芒果圈”为例[J].新闻世界,2013(6):136-138.

责任编辑:任健男

Treatment of High Concurrentin TV Interactive Applications

DU Xinwen, QU Xianglei, DAI Jun

(TechnologyCenter,SuzhouBroadcastingSystem,JiangsuSuzhou215006,China)

In order to increase the city TV media influence, expand the audience groups, generate user real-time interaction, promote media convergence, a TV interactive application is developed. The project provides real-time interaction, program reviews, donations, prizes exchange, video games and other features. During the research, development and using, the business exists high concurrent problem. In this paper, some methods, such as using cloud computing resources, planning system architecture, designing algorithms of probabilistic and coins, are used to meet business needs. At the same time, the development planning of the system can meet the business growth in a period of time.

interactive;cloud computing;big data;concurrent;probability

TN948

B

10.16280/j.videoe.2015.16.007

2015-02-14

【本文献信息】杜歆文,瞿向雷,戴骏.电视互动应用中大并发的处理[J].电视技术,2015,39(16).

猜你喜欢

金币概率服务器
哗啦啦,下金币啦
第6讲 “统计与概率”复习精讲
第6讲 “统计与概率”复习精讲
概率与统计(二)
概率与统计(一)
水中的金币
通信控制服务器(CCS)维护终端的设计与实现
谁偷了我的金币
找金币
得形忘意的服务器标准