本发明涉及数据处理领域,特别是涉及一种计费数据的处理方法、装置及服务器系统。
背景技术:
随着手机游戏的发展,越来越多的单机游戏出现在公众视野中。单机游戏的盈利一般通过运营商短信代扣执行,数据量大,关系繁杂且没有规律性,因此,较难对这些数据进行处理。
单机游戏计费产生的巨大数据量包含了用户行为数据,用户买点数据,运营商支付回调数据等等,少则一天单点几十万的请求数据,多则上百万的独立数据。目前单机游戏更偏向休闲模式,由一款单机游戏产生的数据变得更为不规律,且随时保持高峰值。
因此,数据量大且数据产生时间集中对传统的数据库服务器增加了处理压力。常规的技术在面对持续高峰值的数据回传时显得性能不足,无法及时进入数据库,并且这些数据并没有一些优化的关系,使得数据进入数据库后的查询也成为难题。
技术实现要素:
基于此,有必要针对目前计费数据无法及时存入数据库且存入数据库后不方便查询的技术问题,提供一种计费数据的处理方法、装置及服务器系统。
一种计费数据的处理方法,所述方法包括:
接收客户端以http协议发送计费数据的发送请求;
从线程池中分配空闲线程接收所述计费数据,其中,单一的空闲线程只用于接收单次http协议传输的计费数据;
将接收的所述计费数据进行缓存,并对缓存的所述计费数据进行优化;
为优化后的所述计费数据建立关联的索引关系,并将关联的所述计费数据存入数据库。
在其中一个实施例中,所述从线程池中分配空间线程接收所述计费数据包括:
检测当前线程池中是否有空闲线程;
若是,分配单一的空闲线程接收客户端以单次http协议传输的计费数据;
检测所述计费数据是否传输结束;
若是,释放所述空闲线程至所述线程池。
在其中一个实施例中,以后进先出的原则从所述线程池分配所述单一的空闲线程。
在其中一个实施例中,所述将接收的所述计费数据进行缓存,并对缓存的所述计费数据进行优化包括:
将接收的所述计费数据写入缓存池;
对写入缓存池中的计费数据进行数据去重和无用数据剔除的优化处理。
在其中一个实施例中,所述为优化后的所述计费数据建立关联的索引关系包括:
提取出优化后的所述计费数据的特定识别参数;
根据所述数据库存储数据的方式,通过所述特定识别参数为优化后的所述计费数据建立对应的索引关系。
在其中一个实施例中,所述方法还包括:
检测是否接收到对所述数据库中存储的计费数据的查询指令;
若是,则根据所述查询指令在所述索引关系中搜索对应的索引项;
根据所述索引项读取对应的计费数据。
一种计费数据的处理装置,所述装置包括:
请求接收模块,用于接收客户端以http协议发送计费数据的发送请求;
分配模块,用于从线程池中分配空闲线程接收所述计费数据,其中,单一的空闲线程只用于接收单次http协议传输的计费数据;
缓存模块,用于将接收的所述计费数据进行缓存,并对缓存的所述计费数据进行优化;
关联模块,用于为优化后的所述计费数据建立关联的索引关系,并将关联的所述计费数据存入数据库。
在其中一个实施例中,所述分配模块包括:
第一检测模块,用于检测当前线程池中是否有空闲线程;
线程分配模块,用于在所述第一检测模块检测到当前线程池中有空闲线程时,分配单一的空闲线程接收客户端以单次http协议传输的计费数据;
第二检测模块,用于检测所述计费数据是否传输结束;
释放模块,用于在所述第二检测模块检测到所述计费数据传输结束时,释放所述空闲线程至所述线程池。
在其中一个实施例中,所述缓存模块包括:
写入模块,用于将接收的所述计费数据写入缓存池;
优化模块,用于对写入缓存池中的计费数据进行数据去重和无用数据剔除的优化处理。
以上所述计费数据的处理方法及装置通过线程池分配多个单一的空闲线程分别对应接收单次http协议传输的计费数据,实现多个线程同时接收数据,提升了接收速度,也可以后续使数据更有效地存入数据库;由于单一的空闲线程只接收http协议传输的计费数据,因此,为优化后的数据建立索引关系存入数据库后,根据索引关系可以快速地搜索到需要查询的数据。
一种服务器系统,所述服务器系统包括处理器、存储器、数据库,所述服务器系统还包括由所述处理器控制的线程池和缓存池,所述存储器中存储有执行程序,所述处理器检测到所述服务器系统接收到客户端以http协议发送计费数据的发送请求时,从所述存储器读取并运行所述执行程序控制所述线程池和缓存池实现以上所述的方法向所述数据库中存入数据。
以上所述服务器系统在向数据库存入计费数据时,处理器可以通过运行执行程序控制线程池分配多个单一的空闲线程分别对应接收单次http协议传输的计费数据,实现多个线程同时接收数据,提升接收速度,后续使数据更有效地存入数据库;处理器还可以将数据存入缓存池进行优化处理,并为优化后的数据建立索引关系存入数据库,使查询数据时可以根据索引关系快速地搜索到需要查询的数据。
附图说明
图1为一实施例计费数据的处理方法的流程图;
图2为一实施例计算数据的处理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,一实施例的计费数据的处理方法包括步骤s120至步骤s180。
步骤s120,接收客户端以http协议发送计费数据的发送请求。
单击游戏可以在手机、电脑等电子设备中操作。用户在操作单击游戏中产生的计费数据通常数据量巨大,例如,当下比较流行的消消乐游戏,注册玩家达到1亿人次。在操作单击游戏过程中,会同时产生巨大的计费数据。计费数据一般以http协议发送,当计费数据发生时,服务器即会接收到由客户端以http协议发送计费数据的发送请求。
步骤s140,从线程池中分配空闲线程接收计费数据,其中,单一的空闲线程只用于接收单次http协议传输的计费数据。
其中,步骤s140包括步骤s141至步骤s144。
步骤s141,检测当前线程池中是否有空闲线程。
本实施例中,服务器中设置有线程池。当服务器接收到发送请求时,检测当前线程池中是否有空闲线程。
步骤s142,若是,分配单一的空闲线程接收客户端以单次http协议传输的计费数据。
如果有空闲线程,则分配单一的空闲线程接收单次http协议传输的计费数据。本实施例以后进先出的规则分配单一的空闲线程,从而保证线程的均衡利用。
步骤s143,检测计费数据是否传输结束。
单次http协议传输计费数据时,当检测到有数据传输的结束标志时,或客户端与服务器之间的连接断开时,则表示传输结束。
步骤s144,若是,释放空闲线程至线程池。
当数据传输结束,则释放对应的空闲线程至线程池。释放的空闲线程会依次进入线程池,直到下次根据后进先出的规则被分配。
步骤s160,将接收的计费数据进行缓存,并对缓存的计费数据进行优化。
具体的,步骤s160包括步骤s161和步骤s162。
步骤s161,将接收的计费数据写入缓存池。
本实施例中,服务器还设置有缓存池,缓存池可以是从内存中开辟的部分存储空间,也可以是单独设置的缓存空间。接收的计费数据会首先被写入至缓存池。
步骤s162,对写入缓存池中的计费数据进行数据去重和无用数据剔除的优化处理。
对计费数据进行重复性检测,可以筛选出重复的数据。计费数据中部分数据可能并没有用途,可以通过相应的算法检测计费数据的有用性,从而筛选出无用的数据。如果将重复和无用的数据存入数据库,则会增加数据库的存储负担,降低利用率。因此,可以将重复和无用的数据删除。
步骤s180,为优化后的计费数据建立关联的索引关系,并将关联的计费数据存入数据库。
具体的,步骤s180包括步骤s181和步骤s182。
步骤s181,提取出优化后的计费数据的特定识别参数。
传输的计费数据均会包含唯一的特定识别参数,该识别参数可以是数字序列或随机识别码等,其代表了对应的计费数据。
步骤s182,根据数据库存储数据的方式,通过特定识别参数为优化后的计费数据建立对应的索引关系。
本实施例中,数据库优选为关系型数据库。关系型数据库具有多种存储数据的方式。根据数据库存储数据的方式,可以通过特定识别参数为优化后的计费数据建立对应的索引关系。索引关系可以通过表格的方式存储在数据库或硬盘等存储介质中。
以上所述计费数据的处理方法通过线程池分配多个单一的空闲线程分别对应接收单次http协议传输的计费数据,实现多个线程同时接收数据,提升了接收速度,也可以后续使数据更有效地存入数据库;由于单一的空闲线程只接收http协议传输的计费数据,因此,为优化后的数据建立索引关系存入数据库后,根据索引关系可以快速地搜索到需要查询的数据。
本实施例中,计费数据的处理方法还包括步骤s191至步骤s193。
步骤s191,检测是否接收到对数据库中存储的计费数据的查询指令。
用户在操作单击游戏的过程中,如果查询自己的费用情况,会由客户端向服务器发送对应的查询指令。查询指令通常包括了用户注册的名称,费用发生的日期,费用发生的金额,费用发生的详情(如购买单击游戏中的某个道具等)等内容。服务器会及时检测是否接收到客户端发送的查询指令。
步骤s192,若是,则根据查询指令在索引关系中搜索对应的索引项。
当服务器接收到查询指令后,会将索引关系从数据库或硬盘等存储介质中读取至内存中。进一步,根据查询指令可以在索引关系中搜索对流的索引项。索引项为特定识别参数。
步骤s193,根据索引项读取对应的计费数据。
由索引项可以相应的从数据库中读取对应的计费数据。
如图2所示,本实施例还提供了一种计费数据的处理装置,包括请求接收模块120、分配模块140、缓存模块160和关联模块180。
请求接收模块120,用于接收客户端以http协议发送计费数据的发送请求。
单击游戏可以在手机、电脑等电子设备中操作。用户在操作单击游戏中产生的计费数据通常数据量巨大,例如,当下比较流行的消消乐游戏,注册玩家达到1亿人次。在操作单击游戏过程中,会同时产生巨大的计费数据。计费数据一般以http协议发送,当计费数据发生时,服务器即会接收到由客户端以http协议发送计费数据的发送请求。
分配模块140,用于从线程池中分配空闲线程接收计费数据,其中,单一的空闲线程只用于接收单次http协议传输的计费数据。
其中,分配模块140包括第一检测模块141、线程分配模块142、第二检测模块143和释放模块144。
第一检测模块141,用于检测当前线程池中是否有空闲线程。
本实施例中,服务器中设置有线程池。当服务器接收到发送请求时,检测当前线程池中是否有空闲线程。
线程分配模块142,用于在第一检测模块检测到当前线程池中有空闲线程时,分配单一的空闲线程接收客户端以单次http协议传输的计费数据。
如果有空闲线程,则分配单一的空闲线程接收单次http协议传输的计费数据。本实施例以后进先出的规则分配单一的空闲线程,从而保证线程的均衡利用。
第二检测模块143,用于检测计费数据是否传输结束。
单次http协议传输计费数据时,当检测到有数据传输的结束标志时,或客户端与服务器之间的连接断开时,则表示传输结束。
释放模块144,用于在第二检测模块检测到计费数据传输结束时,释放空闲线程至线程池。
当数据传输结束,则释放对应的空闲线程至线程池。释放的空闲线程会依次进入线程池,直到下次根据后进先出的规则被分配。
缓存模块160,用于将接收的计费数据进行缓存,并对缓存的计费数据进行优化。
其中,缓存模块160包括写入模块161和优化模块162。
写入模块161,用于将接收的计费数据写入缓存池。
本实施例中,服务器还设置有缓存池,缓存池可以是从内存中开辟的部分存储空间,也可以是单独设置的缓存空间。接收的计费数据会首先被写入至缓存池。
优化模块162,用于对写入缓存池中的计费数据进行数据去重和无用数据剔除的优化处理。
对计费数据进行重复性检测,可以筛选出重复的数据。计费数据中部分数据可能并没有用途,可以通过相应的算法检测计费数据的有用性,从而筛选出无用的数据。如果将重复和无用的数据存入数据库,则会增加数据库的存储负担,降低利用率。因此,可以将重复和无用的数据删除。
关联模块180,用于为优化后的计费数据建立关联的索引关系,并将关联的计费数据存入数据库。
关联模块180首先提取出优化后的计费数据的特定识别参数。传输的计费数据均会包含唯一的特定识别参数,该识别参数可以是数字序列或随机识别码等,其代表了对应的计费数据。之后,关联模块180根据数据库存储数据的方式,通过特定识别参数为优化后的计费数据建立对应的索引关系。
本实施例中,数据库优选为关系型数据库。关系型数据库具有多种存储数据的方式。根据数据库存储数据的方式,可以通过特定识别参数为优化后的计费数据建立对应的索引关系。索引关系可以通过表格的方式存储在数据库或硬盘等存储介质中。
以上所述计费数据的处理装置通过线程池分配多个单一的空闲线程分别对应接收单次http协议传输的计费数据,实现多个线程同时接收数据,提升了接收速度,也可以后续使数据更有效地存入数据库;由于单一的空闲线程只接收http协议传输的计费数据,因此,为优化后的数据建立索引关系存入数据库后,根据索引关系可以快速地搜索到需要查询的数据。
用户在操作单击游戏的过程中,如果查询自己的费用情况,会由客户端向服务器发送对应的查询指令。查询指令通常包括了用户注册的名称,费用发生的日期,费用发生的金额,费用发生的详情(如购买单击游戏中的某个道具等)等内容。服务器会及时检测是否接收到客户端发送的查询指令。当服务器接收到查询指令后,会将索引关系从数据库或硬盘等存储介质中读取至内存中。进一步,根据查询指令可以在索引关系中搜索对流的索引项。索引项为特定识别参数。由索引项可以相应的从数据库中读取对应的计费数据。
本实施例还提供了一种服务器系统,服务器系统包括处理器、存储器、数据库,服务器系统还包括由处理器控制的线程池和缓存池,存储器中存储有执行程序,处理器检测到服务器系统接收到客户端以http协议发送计费数据的发送请求时,从存储器读取并运行执行程序控制线程池和缓存池实现以上所述的方法向数据库中存入数据。具体的,处理器检测到服务器系统接收到客户端以http协议发送计费数据的发送请求时,则控制线程池分配空闲线程接收计费数据,在分配空闲线程时,单一的空闲线程只用于接收单次http协议传输的计费数据。之后,处理器控制缓存池对计费数据进行缓存,并对缓存的计费数据进行优化。之后,处理器为优化后的计费数据建立关联的索引关系,并将关联的计费数据存入数据库。
以上所述服务器系统在向数据库存入计费数据时,处理器可以通过运行执行程序控制线程池分配多个单一的空闲线程分别对应接收单次http协议传输的计费数据,实现多个线程同时接收数据,提升接收速度,后续使数据更有效地存入数据库;处理器还可以将数据存入缓存池进行优化处理,并为优化后的数据建立索引关系存入数据库,使查询数据时可以根据索引关系快速地搜索到需要查询的数据。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。