数据配送系统的缓存方法与流程

文档序号:18703446发布日期:2019-09-17 23:17阅读:174来源:国知局
本发明涉及数据交易
技术领域
:,特别涉及一种数据配送系统的缓存方法。
背景技术
::目前,配送系统都需要满足高并发、高吞吐量、低延时和数据实时性的要求,而传统的数据库或文件的存储大量依赖磁盘io操作,对于具有海量数据的配送系统,则会导致读取数据效率非常低下。特别是在高并发的情况下,具有海量数据的配送系统存在以下问题:(1)传统数据库和文件存储都会产生大量磁盘io操作,无法满足数据配送的毫秒级低延时以及高吞吐量的要求;(2)传统数据库、文件以及普通缓存系统很难实现随着业务发展而横向扩展;(3)将数据加载进入缓存,往往会存在数据膨胀,占用大量内存;(4)在硬件资源有限和海量数据前提下,数据缓存很难与数据源保持实时更新,并且在数据更新时段保持稳定的对外服务能力。因此,有必要提供一种数据配送系统的缓存方法,实现能动态扩展的低延时、高并发并且可以实时更新缓存的目的。技术实现要素:本发明的目的在于提供一种数据配送系统的缓存方法,实现能动态扩展的低延时、高并发并且可以实时更新缓存的目的。为了解决现有技术中存在的问题,本发明提供了一种数据配送系统的缓存方法,所述数据配送系统包括供方和需方;所述缓存方法包括以下步骤:所述供方在用于配送的供方终端设备中分配第一缓存区,所述第一缓存区缓存主体标识或主体标识及主体标识对应的要素,所述需方在用于配送的需方终端设备中分配第二缓存区,所述第二缓存区缓存主体标识或主体标识及主体标识对应的要素;所述数据配送系统中需方数据管理平台根据主体标识获取所述主体标识对应的要素,第一缓存区或供方数据管理平台根据所述主体标识匹配所述主体标识对应的要素,通过供方终端设备和需方终端设备向所述需方数据管理平台配送所述主体标识及其对应的要素;第二缓存区根据所述主体标识匹配所述主体标识对应的要素,通过所述需方终端设备向所述需方数据管理平台配送所述主体标识及其对应的要素。可选的,在所述数据配送系统的缓存方法中,所述供方数据管理平台对应至少一台所述供方终端设备,所述供方终端设备为供方前置机;所述需方数据管理平台对应至少一台所述需方终端设备,所述需方终端设备为需方前置机。可选的,在所述数据配送系统的缓存方法中,所述第二缓存区中缓存有主体标识及其对应的要素,所述需方数据管理平台获取数据包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,以获取所述主体标识对应的要素;所述需方前置机接收所述请求;将所述请求中的主体标识与所述第二缓存区中的主体标识进行匹配;若所述第二缓存区中有与所述请求中主体标识匹配成功的主体标识,也有匹配成功的主体标识对应的要素,则将匹配成功的主体标识及其对应的要素反馈给所述需方数据管理平台;若没有匹配成功的主体标识或有匹配成功的主体标识却无对应的要素,则向供方前置机发起所述请求;所述供方前置机获取所述请求,根据所述请求在所述供方碰撞匹配符合所述请求的要素,将匹配成功的主体标识及其对应的要素通过供方前置机和需方前置机配送至所述需方数据管理平台;对于未匹配成功的主体标识,反馈查询失败。可选的,在所述数据配送系统的缓存方法中,所述第二缓存区中没有缓存主体标识及其对应的要素,所述需方获取数据包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,以获取所述主体标识对应的要素;所述需方前置机接收所述请求,并将所述请求发送给所述供方前置机;所述供方前置机获取所述请求,根据所述请求在所述供方碰撞匹配符合所述请求的要素,将匹配成功的主体标识及其对应的要素通过供方前置机和需方前置机配送至所述需方数据管理平台;对于未匹配成功的主体标识,反馈查询失败。可选的,在所述数据配送系统的缓存方法中,所述供方碰撞匹配包括以下步骤:将所述请求中的主体标识与所述第一缓存区中的主体标识进行匹配;当所述第一缓存区中缓存主体标识及其对应的要素时,将匹配成功的主体标识及其对应的要素反馈给所述需方前置机;当所述第一缓存区仅缓存主体标识时,所述供方前置机将匹配成功的主体标识发送至供方数据管理平台调取对应的要素,并将匹配成功的主体标识及其对应的要素反馈给所述需方前置机;对于匹配不成功的主体标识,反馈查询失败或者将匹配不成功的主体标识发送至所述供方数据管理平台进行再匹配,再匹配成功的主体标识及其对应的要素通过所述供方前置机和所述需方前置机配送至所述需方数据管理平台,对于再匹配失败的主体标识,则反馈查询失败。可选的,在所述数据配送系统的缓存方法中,所述需方获取数据还包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,以获取所述主体标识对应的要素;所述需方前置机接收所述请求并将其缓存于所述第二缓存区内;所述需方前置机向所述供方前置机发出碰撞邀请;所述供方前置机接受碰撞邀请,并将所述第一缓存区中缓存的主体标识或主体标识以及其对应的要素传输至所述第二缓存区中与所述请求中的主体标识进行碰撞匹配。可选的,在所述数据配送系统的缓存方法中,所述碰撞匹配包括以下情况:当所述第一缓存区缓存主体标识时,所述供方前置机接受碰撞邀请后将所述第一缓存区中缓存的主体标识传输至所述第二缓存区中进行碰撞匹配,所述需方前置机将匹配成功后的主体标识通过所述供方前置机传输至所述供方数据管理平台调取对应的要素,并将匹配成功的主体标识及其对应的要素配送至所述需方数据管理平台;当所述第一缓存区缓存主体标识及其对应的要素时,所述供方前置机接受碰撞邀请后将所述第一缓存区中缓存的主体标识及其对应的要素传输至所述第二缓存区进行碰撞匹配,所述需方前置机将匹配成功的主体标识及其对应的要素配送至所述需方数据管理平台;对于匹配不成功的主体标识,反馈查询失败或者将匹配不成功的主体标识发送至所述供方数据管理平台进行再匹配,再匹配成功的主体标识及其对应的要素通过所述供方前置机和所述需方前置机配送至所述需方数据管理平台,对于再匹配失败的主体标识,则反馈查询失败。可选的,在所述数据配送系统的缓存方法中,若不止一个供方的第一缓存区或供方数据管理平台中有与所述请求中的主体标识匹配成功的主体标识,则需方根据要求选取其中一个供方提供要素。可选的,在所述数据配送系统的缓存方法中,数据配送系统配送的数据包括所述请求中的主体标识、符合所述请求的要素以及配送的接口信息。可选的,在所述数据配送系统的缓存方法中,所述第一缓存区和所述第二缓存区中的缓存内容按约定时间进行更新;和/或,所述数据配送系统配送的数据根据规定格式创建;和/或,所述主体标识包括加密主体标识或不加密主体标识。在本发明所提供的数据配送系统的缓存方法中,通过设置缓存区,避免了配送系统中大量的磁盘io操作,从而满足了数据配送的毫秒级低延时以及高吞吐量的要求,还解决了现有技术中配送系统难以实现随着业务发展而横向扩展的问题;本发明通过设置独立的缓存区,使配送系统能在硬件资源有限和海量数据的前提下,在缓存更新时段保持稳定的对外服务能力。附图说明图1a-1c为本发明实施例提供的利用缓存的数据配送模块图。具体实施方式下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。在下文中,术语“第一”“第二”等用于在类似要素之间进行区分,且未必是用于描述特定次序或时间顺序。要理解,在适当情况下,如此使用的这些术语可替换。类似的,如果本文所述的方法包括一系列步骤,且本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。本发明提供了一种数据配送系统的缓存方法,如图1a-1c所示,图1a-1c为本发明实施例提供的利用缓存的数据配送模块图,所述数据配送系统包括供方和需方;所述缓存方法包括以下步骤:所述供方在用于配送的供方终端设备中分配第一缓存区,所述第一缓存区缓存主体标识或主体标识及主体标识对应的要素,所述需方在用于配送的需方终端设备中分配第二缓存区,所述第二缓存区缓存主体标识或主体标识及主体标识对应的要素;所述数据配送系统中需方数据管理平台根据主体标识获取所述主体标识对应的要素,第一缓存区或供方数据管理平台根据所述主体标识匹配所述主体标识对应的要素,通过供方终端设备和需方终端设备向所述需方数据管理平台配送所述主体标识及其对应的要素;第二缓存区根据所述主体标识匹配所述主体标识对应的要素,通过所述需方终端设备向所述需方数据管理平台配送所述主体标识及其对应的要素。本发明通过设置缓存区,避免了配送系统中大量的磁盘io操作,从而满足了数据配送的毫秒级低延时以及高吞吐量的要求,还解决了现有技术中配送系统难以实现随着业务发展而横向扩展的问题;本发明通过设置独立的缓存区,使配送系统能在硬件资源有限和海量数据的前提下,在缓存更新时段保持稳定的对外服务能力。进一步的,所述供方包括供方数据管理平台,所述供方数据管理平台对应至少一台所述供方终端设备,所述供方终端设备为供方前置机;所述需方包括所述需方数据管理平台,所述需方数据管理平台对应至少一台所述需方终端设备,所述需方终端设备为需方前置机。其中,供方数据管理平台和需方数据管理平台是配送过程中用于数据流通的供方和需方的业务系统,数据管理平台可以简称为dmp。本发明中缓存碰撞方法可以包括下面几种情况,既可以在第一缓存区和第二缓存区都进行碰撞匹配,也可以单独在第一缓存区进行碰撞匹配,还可以单独在第二缓存区进行碰撞匹配。较佳的,在第一缓存区和第二缓存区都进行碰撞匹配可以适用于供方和需方均缓存有主体标识以及其对应的要素的情况下,此种碰撞匹配采用的数据配送方法可以参考数据配送实施例一。单独在所述第一缓存区进行碰撞匹配可以适用于供方中主体标识以及其对应的要素较多的情况下,例如,某一需方具有100个主体标识需要查找要素,而某一供方有1000个主体标识以及其对应的要素,此时则可以单独在第一缓存区进行碰撞匹配,此种碰撞匹配采用的数据配送方法可以参考数据配送实施例二。单独在所述第二缓存区进行碰撞匹配可以适用于需方中需要获取要素的主体标识较多的情况下,例如,某一需方具有1000个主体标识需要获取要素,而某一供方只具有100个主体标识以及其对应的要素,此时则可以单独在第二缓存区进行碰撞匹配,此种碰撞匹配采用的数据配送方法可以参考数据配送实施例三。可以理解,上述的数字1000和100仅用于举例比较,并非是1000个主体标识或主体标识以及其对应的要素就是属于实际数据较多的情况,并非是100个主体标识或主体标识以及其对应的要素就是属于实际数据较少的情况。另外上述碰撞仅针对于缓存区,若第一缓存区和/或第二缓存区碰撞匹配失败,还可以在供方数据管理平台继续碰撞匹配。在本发明所提供的缓存方法中,所述主体标识可以简称为id,所述数据配送系统配送的数据包括所述请求中的主体标识、符合所述请求的要素以及配送的接口信息,而所述主体标识对应的要素包括kv库中的kv值。在一个实施例中,缓存方法可以采用缓存加载的形式进行缓存:首先使用redis实现交易接口中的缓存和查询;接着使用redis加载转换后的id列表;最后使用redis加载id+kv值,并且,所述第一缓存区和所述第二缓存区中的缓存内容(包括主体标识(id)以及要素(kv值))按约定时间进行更新,约定时间可以为1个小时或1天等。本发明通过采用缓存键值设计可以大大降低缓存的膨胀,从而可以降低内存的占用。进一步的,所述第一缓存区和所述第二缓存区中的功能模块可以包括:文本导入模块、加工缓存模块以及服务访问模块,各模块的介绍及改进如下表所示:进一步的,在数据准备阶段中,所述主体标识可以设为加密主体标识或不加密主体标识,并且所述数据配送系统配送的数据还需要根据规定格式创建。所述主体标识以及要素的创建方式可以包括以下步骤:第一步,文本导入,所述供方数据管理平台定期进行算法跑数处理,形成包括id和/或id+kv的文件。第二步,加工缓存,所述第一缓存区获取包括id和/或id+kv的文件,处理形成索引装载到关系型数据库中,其中的主体标识以及要素根据规定格式创建。例如,规定格式可以如下:文件名格式为:idtype_timestamp.source(eg:id010201_yyyymmdd000001.source)文件头格式为:普通:exid|@|connobjid|@|connobjid|@|connobjid(eg:exid|@|don00001010000000051|@|don00001010000001196|@|don00001010000001208)。文件内要素格式为:exid|@|1|@|222|@|4444(eg:5d6a7a48dd27fdc49a82c210e5880a30|@|32|@|22|@|11)。进一步的,所述第一缓存区缓存步骤可以如下:第一步:文件下载;定时任务调度,按供方提供的用户和口令向供方传输(sftp)服务器进行查询下载。如遇定时任务处理时未产生下载的情况,也可事后人工调用进行任务的获取。第二步:kv库下载:定时任务调度,按供方提供的api(应用程序编程接口)进行调度,完成要素的获取,参考的api交互流程如下:1)根据apikey,username,password获取token。http://{host}:{port}/telecom-dmp/gettoken?apikey={apikey}&sign={apikey};2)根据token,获取对应kvtable里面的kv值http://{host}:{port}/telecom-dmp/kv/getvaluebykey?token={token}&table={table}&key={key};2.1)先获取主key,每小时固定的名字,keymap.{yyyymmdd}.map,获取存有具体key的二级key;2.2)请求二级key,获取具体的key列表,该列表为相关imei号经base64转换的key;2.3)请求具体的key,得到相应的value。进一步的,将缓存方法运用于数据配送系统中,所述数据配送系统可以做如下准备:对于供方,(1)供方负责进行标签生成处理,标签格式按“id+value值”。(2)供方负责将标签加载到kv数据库。(3)供方负责能将主体标识以及要素按规定格式提供给供方前置机。(4)供方负责配合供方前置机至kv数据库的取数接口的对接。(5)供方前置机按约定时间(例如每24小时1次)对超期要素和索引进行清理。对于需方,(1)需方负责能将主体标识按规定格式提供需方前置机。(2)需方配合需方前置机与需方数据管理平台之间的数据查询/结果返回接口的对接。(3)数据配送时,能由需方数据管理平台发起实时查询请求(可以为多页查询模式)。对于数据配送系统,(1)数据配送系统负责在供方前置机实现静态存储,加工处理和交易碰撞匹配处理,同时提供交易通路使供需方能单笔实时查询,并提供计费结算服务。(2)数据配送系统负责在供需方前置机上部署配送模块、加密主体标识转译模块。(3)供方前置机每小时从kv库将频次内增量标签取回,并在前置机建立id碰撞匹配索引。(4)使需方能通过需方前置机向供方前置机实时发起交易数据查询请求,供方前置机能通过索引生成向需方前置机返回查询标签结果,数据配送完成后,数据配送系统生成配送日志。(5)数据配送系统根据配送日志和资费模式,生成结算单。在数据配送实施例一中,如图1a~1b所示,第一缓存区和第二缓存区都缓存有主体标识或主体标识及其对应的要素,则可能在第一缓存区和第二缓存区都进行碰撞匹配,其中,所述第二缓存区中缓存的主体标识及其对应的要素可以为需方已获取的数据,现存储于第二缓存区中。所述需方数据管理平台获取数据包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,还可以包括键值(key),这里的键值属于主体标识对应的一种要素,请求用于获取所述主体标识对应的键值的具体赋值,这里的具体赋值指的是主体标识对应的另一种要素;所述需方前置机接收所述请求;请参考图1a,将所述请求中的主体标识与所述第二缓存区中的主体标识进行匹配;若所述第二缓存区中有与所述请求中主体标识匹配成功的主体标识,也有匹配成功的主体标识对应的要素,则将匹配成功的主体标识及其对应的要素反馈给所述需方数据管理平台;若没有匹配成功的主体标识或有匹配成功的主体标识却无对应的要素,则向供方前置机发起所述请求,请参考图1b,所述供方前置机获取所述请求,根据所述请求在所述供方碰撞匹配符合所述请求的要素,将匹配成功的主体标识及其对应的要素通过供方前置机和需方前置机配送至所述需方数据管理平台;对于未匹配成功的主体标识,反馈查询失败。进一步的,所述供方碰撞匹配可以包括以下步骤:将所述请求中的主体标识与所述第一缓存区中的主体标识进行匹配;当所述第一缓存区中缓存主体标识及其对应的要素时,所述供方前置机将匹配成功的主体标识及其对应的要素反馈给所述需方前置机;当所述第一缓存区仅缓存主体标识时,所述供方前置机需要将匹配成功的主体标识发送至供方数据管理平台调取对应的要素,并将成功调取的主体标识及其对应的要素反馈给所述需方前置机;对未匹配成功的主体标识,反馈查询失败。在其他实施例中,还可以对未匹配成功的主体标识进行进一步的处理,例如,将未匹配成功的主体标识发送至供方数据管理平台进行再次匹配,将再次匹配后匹配成功的主体标识及其对应的要素通过供方前置机及需方前置机配送至需方的数据管理平台,对再次匹配后未匹配成功的主体标识,反馈查询失败。本实施例中,需方前置机的第二缓存中缓存的主体标识及其对应的要素,可以是需方之前发出请求的汇总,这样,需方发出新的请求之前,可以先在需方前置机中进行碰撞,可以排除重复请求的情况,从而为需方节省成本,还可以减小配送压力。在数据配送实施例二中,如图1b所示,第一缓存区中缓存有主体标识或主体标识及其对应的要素,所述第二缓存区中没有缓存主体标识及其对应的要素,本实施例则需要在第一缓存区进行碰撞匹配,所述需方获取数据包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,还可以包括键值(key),这里的键值属于主体标识对应的一种要素,请求用于获取所述主体标识对应的键值的具体赋值,这里的具体赋值指的是主体标识对应的另一种要素;所述需方前置机接收所述请求,并将所述请求发送给所述供方前置机;所述供方前置机获取所述请求,根据所述请求在所述供方碰撞匹配符合所述请求的要素,将匹配成功的主体标识及其对应的要素通过供方前置机和需方前置机配送至所述需方数据管理平台;对于未匹配成功的主体标识,反馈查询失败。在本实施例中,所述供方碰撞匹配方法可以和数据配送实施例一相同。在数据配送实施例三中,如图1c所示,第一缓存区中缓存有主体标识或主体标识及其对应的要素,第二缓存区用于在配送过程中缓存所述请求,本实施例主要在第二缓存区进行碰撞匹配,若所述请求中的主体标识的数量大于第一预设值时或所述请求中的主体标识的数量大于所述供方的第一缓存区中主体标识的数量,且所述请求中的主体标识的数量与第一缓存区中主体标识的数量的差值超过第二预设值时,则可以在所述第二缓存区进行碰撞匹配,其中所述第一预设值和第二预设值均可以是数据配送系统根据各供方前置机和各需方前置机的传送速率或者其他的业务需求(例如供方和需方的个性化要求或根据多次配送经验总结)设定的。所述需方获取数据包括以下步骤:所述需方数据管理平台根据主体标识发起请求,所述请求包括所述主体标识,还可以包括键值(key),这里的键值属于主体标识对应的一种要素,请求用于获取所述主体标识对应的键值的具体赋值,这里的具体赋值指的是主体标识对应的另一种要素;所述需方前置机接收所述请求并将其缓存于所述第二缓存区内;所述需方前置机向所述供方前置机发出碰撞邀请;所述供方前置机接受碰撞邀请,并将所述第一缓存区中缓存的主体标识或主体标识以及其对应的要素传输至所述第二缓存区中与所述请求中的主体标识进行碰撞匹配;将匹配成功的主体标识及其对应的要素通过所述需方前置机配送至所述需方数据管理平台;对于匹配不成功的主体标识,反馈查询失败或者将匹配不成功的主体标识发送至所述供方数据管理平台进行再匹配,再匹配成功的主体标识及其对应的要素通过所述供方前置机和所述需方前置机配送至所述需方数据管理平台,对于再匹配失败的主体标识,则反馈查询失败。进一步的,数据配送实施例三中,碰撞匹配包括以下情况:当所述第一缓存区缓存主体标识时,所述供方前置机接受碰撞邀请后将所述第一缓存区中缓存的主体标识传输至所述第二缓存区中进行碰撞匹配,所述需方前置机将匹配成功后的主体标识通过所述供方前置机传输至所述供方数据管理平台调取对应的要素,并将匹配成功的主体标识及其对应的要素配送至所述需方数据管理平台。当所述第一缓存区缓存主体标识及其对应的要素时,所述供方前置机接受碰撞邀请后将所述第一缓存区中缓存的主体标识及其对应的要素传输至所述第二缓存区进行碰撞匹配,所述需方前置机将匹配成功的主体标识及其对应的要素配送至所述需方数据管理平台。对于匹配不成功的主体标识,反馈查询失败或者将匹配不成功的主体标识发送至所述供方数据管理平台进行再匹配,再匹配成功的主体标识及其对应的要素通过所述供方前置机和所述需方前置机配送至所述需方数据管理平台,对于再匹配失败的主体标识,则反馈查询失败。进一步的,在上述三个数据配送实施例中,若不止一个供方的第一缓存区或供方数据管理平台中有与所述请求中的主体标识匹配成功的主体标识,则需方根据要求选取其中一个供方提供要素。在一个实施例中,反馈的数据创建的文件头格式可以为:普通:exid|@|connobjid-{1,2}|@|connobjid-{3}|@|connobjid(eg:exid|@|don00001010000000051|@|don00001010000001196|@|don00001010000001208);按照参数提取数据,文件内数据格式可以为:exid|@|111|@|222|@|4444;(eg:5d6a7a48dd27fdc49a82c210e5880a30|@|32|@|2|@|4444)。在本发明所提供的数据配送系统中,数据维护阶段可以采用如下维护方法:(1)供需方前置机保留有系统参数<timeout>,可以指定数据保留时间范围。例如系统参数<timeout>可以为:[cache];redis_host=前置机ip地址;redis_port=redis端口号;redis_db=6;cashe_time_limit=40;timeout=900。(2)需方前置机记录交易日志作为交易凭证;(3)设置datarange(普通订单设置,人群包筛选不需要设置该项),配置文件中datarange字段的关键字顺序与文件的文件头connobjid的顺序相对应,例如所述datarange字段可以如下:data_range=don00001010000000051,don00001010000001196,don00001010000001208。综上,在本发明所提供的数据配送系统的缓存方法中,通过设置缓存区,避免了配送系统中大量的磁盘io操作,从而满足了数据配送的毫秒级低延时以及高吞吐量的要求,还解决了现有技术中配送系统难以实现随着业务发展而横向扩展的问题;本发明通过设置独立的缓存区,使配送系统能在硬件资源有限和海量数据的前提下,在缓存更新时段保持稳定的对外服务能力。上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属
技术领域
:的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1