数据资源的获取方法、装置和系统
技术领域
本发明涉及计算机互联网领域,具体而言,涉及一种数据资源的获取方法、装置和系统。
背景技术
现有技术通过提供数据集中式管控来处理前端客户端的业务请求,得到对应的资源,这种数据集中式管控能够带来数据共享、下调数据管理成本的优点,但是与此同时,也带来了巨量数据请求和查询单点的负面影响。
基于上述问题,可以通过第三方客户端部署到应用服务器上,或者制定统一的交互协议,减少应用服务器提供服务的成本,让资源直达请求方,是目前降低可复制型数据请求的最常用的方式,但是如何准确的描述获取资源的路径,使得请求方式可动态变换切换,使得客户端请求资源方式做到可控制,暂时无系统的方案进行系统阐述。
针对上述现有技术无法根据客户端的需求来灵活控制资源的请求方式的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据资源的获取方法、装置和系统,以至少解决现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题。
根据本发明实施例的一个方面,提供了一种数据资源的获取方法,包括:获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径;在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源;其中,在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
根据本发明实施例的另一方面,还提供了一种数据资源的获取装置,包括:获取模块,用于获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径;访问处理模块,用于在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源;切换模块,用于在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
根据本发明实施例的另一方面,还提供了一种数据资源的获取系统,包括:分布式缓存服务器;远程服务器;配置服务器,保存预先配置的查询路径信息和缓存配置信息;客户端,与配置服务器建立通信关系,用于从配置服务器获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径;其中,客户端在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源,其中,在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
在本发明实施例中,采用获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径;在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源;其中,在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源的方式,通过针对资源的访问路径的选择方式提供一种可配置化的建模思路,基于预先配置的查询路径信息和缓存配置信息,实现计算机客户端的动态访问控制,比较现有技术提供的数据集中式管控方法,这种可配置化的选择资源的方案基于可复制类数据的本质,将用于获取数据资源的客户端部署到业务请求的应用端,基于配置信息的描述,使得获取资源的路径可以根据需求进行切换,进而解决了现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种运行数据资源的获取方法的计算机终端的硬件结构框图;
图2是根据本发明实施例一的数据资源的获取方法的流程图;
图3是根据本发明实施例一提供的一种数据资源的获取方法的应用结构示意图;
图4是根据本发明实施例的一种缓存配置信息与资源的关系结构示意图;
图5是根据本法实施例二的数据资源的获取装置的结构示意图;
图6是根据本法实施例二的一种可选的数据资源的获取装置的结构示意图;
图7a和7b是根据本法实施例二的另外一种可选的数据资源的获取装置的结构示意图;以及
图8是根据本法实施例三的数据资源的获取系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面就对本申请涉及到的名词进行解释:
最优资源:系统在获取所需资源时,满足系统其业务场景正常运行的前提下,响应时间、系统成本综合考虑下最优的资源。
MQL:Model Query Language,模型查询语言,用来描述模型查询的关键要素及模式的一种配置,该语言描述了配置的基本语法和格式。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种运行数据资源的获取方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据资源的获取方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的搜索结果的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的数据资源的获取方法。图2是根据本发明实施例一的数据资源的获取方法的流程图。
如图2所示,该数据资源的获取方法可以如下实施步骤:
步骤S20,获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径。
本申请上述步骤S20可以应用在计算机终端的搜索功能中,结合图3可知,在计算机客户端的搜索系统启动时,可以从配置服务器将需要的配置信息拉取到客户端,该配置信息至少包括查询路径信息,该查询路径信息描述了计算机客户端将要访问的服务器终端地址。
步骤S22,在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源,其中,在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
本申请上述步骤S22提供了一种可以根据已经配置好的查询路径信息来选择访问分布式缓存服务器或远程服务器,从而获取该业务请求对应的当前资源,以当前流程中选择访问分布式缓存服务器来获取资源数据为例,从当前的分布式缓存服务器获取缓存的资源数据失败的情况下,才选择从远程服务器的远程访问路径来查询得到对应的资源数据。此处需要说明的是,一种可选方案中,在分布式缓存服务器提供的缓存数据不可用的情况下,可以预先配置查询路径信息直接选择远程访问地址来访问远程服务器,从而获取资源,即上述步骤也提供了可以直接访问远程服务器的应用功能,在分布式缓存服务器提供的缓存数据可用时,可以调整配置信息,使得查询路径信息调整为分布缓存路径。
此处还需要说明的是,本申请上述步骤中的资源可以指计算机客户端上的业务系统完成数据业务查询请求时,获取资源的数据节点,即当前业务请求可以从分布式缓存服务器或远程服务器的设备中获取到的数据内容。
由此可知,本申请上述实施例一提供的方案,主要针对资源的访问路径的选择方式提供一种可配置化的建模思路,基于预先配置的查询路径信息和缓存配置信息,实现计算机客户端的动态访问控制,比较现有技术提供的数据集中式管控方法,这种可配置化的选择资源的方案基于可复制类数据的本质,将用于获取数据资源的客户端部署到业务请求的应用端,基于配置信息的描述,使得获取资源的路径可以根据需求进行切换,从而解决了现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题,达到成本、性能或风险的最优平衡。
比较现有的数据集中式架构部署,在用户对应用客户端的访问量和查询量剧增的情况下(例如在电子商务进行促销活动期间,应用端的访问量和查询量会在单位时间内剧增),如果每个用户发出业务请求之后,客户端都从远程访问远程服务器来获取资源,则会造成的当业务请求增加时服务器大规模的部署的成本优化问题,本申请上述实施例提供的一种配置查询路径信息和缓存配置信息的功能,使得将一部分业务请求查询的处理过程分流至缓存服务器,以减缓远程服务器的负担,同时加快了客户端获取资源的效率。同时该思路同样可以适用于其他客户端动态运行时控制设计。
例如,针对客户端的登录用户需要获取的资源属于更新率很低的数据时(例如,注册用户的基本信息:手机号、地址、账号等),就可以将这些更新率低的资源部署在分布式缓存服务器中,并预先配置查询路径信息为选择分布缓存路径,这样客户端在接收到业务请求获取用户的基本信息时,就可以从分布式缓存中获取。如果分布式缓存服务器发生故障或其他故障,导致无法成功获取资源,则切换至选择远程访问路径来从远程访问服务器中获取资源,从而实现了获取资源的路径可以根据需求进行切换,从而达到成本、性能或风险的最优平衡。
由此可知,为了更好的实现对部署在客户端的管控,实现最优资源的切换,最优资源并不是一成不变的,而是随着业务场景的变化而变化的,例如,用户的个性化信息是随时变化的,此时最优资源即数据本身,因为对数据采用复制的到缓存的方式,会增加数据一致性的维护成本,缓存命中率低下,适合直接从远程服务器获取,但是某个活动的时,由于同一份数据请求过多,会造成数据单点,通过对查询模式进行切换,能够做到负载转移和成本优化的目的,动态的切换查询路径,无需发布,即可达到最有资源选择的目的。目前该产品已在支付宝公司的数据查询技术中广泛使用,通过配置化的资源选择方案,可以动态的切换查询路径,达到在不同的容量要求、风险控制的情况下,动态的切换资源依赖的目的。
基于上述描述,进一步分析可知,本申请上述实施例中,步骤S22执行的通过查询路径信息访问分布式缓存服务器或远程服务器,并根据所述缓存配置信息查询得到获取业务请求对应的资源的步骤可以包括如下任意一种运行方式:
第一种运行方式:在远程访问路径的优先级高于分布缓存路径的情况下,直接选择通过远程访问路径访问远程服务器,获取业务请求对应的资源。
优选地,上述第一种运行方式提供的直接选择通过远程访问路径访问远程服务器,获取业务请求对应的资源的步骤,可以包括如下实施方案:
步骤S221,依据远程访问路径发送业务请求至远程服务器。
步骤S223,远程服务器根据业务请求从配置服务器中获取对应的模型配置信息和查询语句,其中,模型配置信息包括:用于表征业务请求对应的资源类型的领域模型,以及用于表征资源类型对应的资源信息表的数据模型。
步骤S225,远程服务器根据查询语句和模型配置信息访问数据库,获取业务请求对应的资源。
本申请上述步骤中的模型配置信息是一种用于描述模型描述配置的内容,其中,可以通过一种公共的语言或方式(如xml)来描述一个包含了“领域模型”以及和底层“数据模型”的内容及他们之间的映射关系,从而使得数据转换、底层不同数据库的适配来说能够使用一致的流程来处理。其中,数据模型是指从持久化或缓存设备中存储和获取数据,物理模型的针对存储和查询需求而设计,领域模型是针对业务需求而设计的内容。
例如,某一个客户信息对应的领域模型可以包含子模型:客户基本信息、手机信息、地址信息等,此时,该领域模型对应的数据模型可以为:平铺的客户信息表、手机信息表、地址信息表等。根据应用场景的不同,上述数据模型还可以是客户模型、银行卡模型等等,此时客户模型是否支持缓存获取模型,这些是在数据服务对外提供时,根据数据存储的路径预先设置到配置服务器中的,也可以随着存储路径的变化,修改配置,从而支持最优资源的选择。
第二种运行方式:在分布缓存路径的优先级高于远程访问路径的情况下,优先选择通过分布缓存路径访问分布式缓存服务器,来获取业务请求对应的资源,在提取分布缓存路径失败的情况下,切换至选择远程访问路径访问分布式缓存服务器,来获取业务请求对应的资源。
上述第二种运行方式提供了基于动态配置的方式实现客户端获取资源路径的切换,对数据获取的资源切换配置进行了统一抽象和建模,对配置的设计方式进行描述和保护。
结合图3可知,上述方案可以通过在配置服务器上预先配置查询路径信息的方式,来实现维护资源选取路径,对资源做统一维护。
可以采用xml语言对配置信息进行描述,并将配置文件集成在配置服务器的系统中,通过客户端读取和拉取配置服务器上文件的方式来获取配置信息,并通过开关设计来切换不同的配置。
远程服务器(Query_Server,相对业务数据的服务器来说,会通过一次网络调用,称之为远程服务器)获取数据,会选择数据库来获取数据,为了使得查询过程归一化,而减少领域模型、数据模型以及数据存储设备适配的转换过程(配置服务器与搜索服务器交互目的,获取一次后,会缓存在远程服务器内存中,避免多次获取),通过从配置服务器获取“模型描述配置”,完成数据的获取。
此处需要说明的是,本申请提供的一种可选实施例中,在执行步骤S22实现的通过查询路径信息选择访问分布式缓存服务器或远程服务器之前,还可以执行如下方案:
结合图3可知,在配置服务器中配置查询路径信息和缓存配置信息,其中,在查询路径信息为分布缓存路径的情况下,通过缓存配置信息对业务请求中的查询标识进行缓存对象关键词包装,生成业务请求对应的查询关键词,其中,分布式缓存服务器根据查询关键词查询得到业务请求对应的资源。
上述方案中的缓存配置信息的作用是:在查询路径信息中,如果配置的是选择分布缓存路径时,即当前是“缓存查询”模式,则资源是通过选择访问分布式缓存服务器而获取到的,该缓存配置信息主要用来包装业务请求中携带的参数,使得客户端可以灵活的从“分布式资源”中获取数据,无需客户端理解分布式缓存中数据获取数据逻辑。其中,缓存配置信息可以包括:缓存前缀和缓存名称。
例如,当前业务请求,输入的查询标识为用户ID标识:00001,在选择分布式缓存服务器根据该用户ID获取用户数据时,需要对该用户ID标识进行缓存对象key包装,包装过程为:从缓存配置信息中获取缓存前缀和缓存名称,组装得到的查询关键词key可以为USERID-0001。
另外,当前业务请求,输入的查询标识为银行卡ID标识:00001,在选择分布式缓存服务器根据该银行卡ID获取银行卡数据时,需要对该银行卡ID标识进行缓存对象key包装,包装过程为:从缓存配置信息中获取缓存前缀和缓存名称,组装得到的查询关键词key可以为BANKCARDID-0001。
此处需要说明的是,结合图3可知,本申请上述方案提供的查询过程中,客户端需要获取数据模型以及获取该数据模型的资源类型的查询语句MQL(Model Query Language,模型查询语言),这种描述类似SQL的描述,例如,该配置的模型查询语句为:SelectUserId,Name From Customer ID UserId=’111’Mode Cache,该配置描述了获取数据、数据模型及获取数据模型的模式,其中,“Select”、“From”、“ID”和“Mode”为配置关键字。
优选地,本申请上述实施例中,在执行步骤S22通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到该业务请求对应的资源之前,还可以执行如下步骤:
步骤S211,从配置服务器获取缓存配置信息。
步骤S213,通过访问数据库获取到缓存配置信息对应的资源。
步骤S215,并将缓存配置信息及其对应的资源组装成客户模型。
步骤S217,将客户模型保存至分布式缓存服务器。
如图3可知,本申请上述步骤S211至步骤S217实现了一种在缓存服务器中进行缓存重建的过程,即实现如何将远程服务器中的数据在分布式缓存服务器中完成缓存重建的过程。本发明的分布式缓存服务器可以通过key->value的模式来获取需要进行缓存的缓存数据,即将关系数据库DB中以数据表形式保持的数据转换成key->value的模式在缓存服务器中进行保存,关系数据库的数据与缓存数据具有一一对应的关联关系。
上述方案通过,先获取缓存配置信息,根据缓存配置信息得到符合分布式缓存的数据保存格式中的查询关键字key(例如图4中该查询关键字key可以是缓存前缀客户ID),然后根据从数据库DB中获取该查询关键字key对应的资源,如图4所示的示例可知,该资源的可以包括以下任意一种或多种各类型的数据:客户基本信息、手机信息、地址信息,此处需要说明的,查询过程中资源的类型的数量与远程服务器与数据库DB交互的次数相同,即如果要获取上述客户基本信息、手机信息、地址信息三种类型的资源,则需要与数据库DB交互3次。最后根据缓存配置信息和对应的资源组装成一个客户模型。
由此,在当分布式缓存服务器中不存在数据时的应用场景中,可以通过远程服务器从数据库DB中获取到资源并组装成客户模型,放置到缓存服务器中,从而使得业务请求能直接从缓存服务器中获取到资源数据,使得后续的查询路径最优。
下面就结合图3,以在电子商务领域提供的查询搜索功能为例,在默认优先访问分布式缓存服务器的情况下,对本申请提供的方案进行详细描述:
步骤A,在客户端的查询系统启动时,可以从配置服务器中将需要的资源配置信息拉取到客户端,使得客户端可以加载对应的资源配置信息,该资源配置信息包括预先设置的查询路径信息和缓存配置信息。
此处需要说明的是,上述查询路径信息为分布缓存路径,在查询路径确定为优先使用分布缓存路径时,则确定客户端处于“缓存查询”模式,此时选择访问分布式缓存服务器来获取资源,上述缓存配置信息用于包装业务请求中携带的参数,使得客户端可以灵活的从“分布式资源”中获取数据,无需客户端理解分布式缓存中数据获取数据逻辑。
步骤B,在客户端根据分布缓存路径与分布式缓存服务器建立通信关系之后,根据模型查询语言(Model Query Language,简称为MQL)来从分布式缓存服务器中获取资源。
此处需要说明的是,上述模型查询语言MQL的描述类似SQL的描述,可以通过如下描述方式来描述上述资源配置信息:获取数据模型+获取数据模型的资源类型。
步骤C,如果在从上述分布式缓存服务器获取缓存的资源失败的情况下,可以通过提取远程访问路径来访问远程服务器,进而获取到对应的资源。该步骤实现了,在缓存数据不可用的情况下,直接选择远程服务器获取资源,当缓存可用时,则会调整配置的资源配置信息。
此处需要说明的是,在本申请客户端拉取到的查询路径信息默认为远程访问路径的情况下,则系统直接跳过步骤B,直接通过步骤C中提取程访问路径来访问远程服务器,进而获取到对应的资源。
步骤D,为了使得远程服务器从数据库获取资源的查询过程归一化,减少领域模型、数据模型以及数据存储设备适配的转换过程,远程服务器根据业务请求从配置服务器中获取对应的模型配置信息和查询语句,其中,模型配置信息包括:用于表征业务请求对应的资源类型的领域模型,以及用于表征资源类型对应的资源信息表的数据模型。
步骤E,远程服务器根据从配置服务器中获取到的模型配置信息和查询语句,从数据库中查询得到对应的以数据表格式保存的资源。
本申请上述步骤A至步骤E,实现了从配置服务器中预先配置客户端的查询路径信息,使得客户端可以根据需求选择分布式缓存服务器或远程服务器获取资源。即基于预先配置的查询路径信息和缓存配置信息,实现计算机客户端的动态访问控制,使得获取资源的路径可以根据需求进行切换,从而解决了现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题,达到成本、性能或风险的最优平衡。
此处还需要说明的是,在上述步骤A至步骤E的执行过程中,如果分布式缓存服务器无法提供相应的资源,客户端切换至从远程服务器获取资源之后,可以通过如下步骤实现远程服务器对分布式缓存服务器的缓存数据重建过程:
步骤F,远程服务器从配置服务器中获取缓存配置信息,并通过SQL查询语句从访问数据库中获取到缓存配置信息对应的资源。该步骤中获取缓存配置信息的作用是为了提供缓存重建的配置信息。
步骤G,在将缓存配置信息及其对应的资源组装成客户模型之后,将该客户模型发送给缓存服务器进行缓存,从而实现根据MQL获取持久化存储配置,进行缓存重建。
上述过程中,数据实例需要用统一的语言进行描述,从而使得配置生效时,能通过统一的流程而非分支的方式来进行数据的扭转,而无需进行二次开发,此处需要说明的是,统一语言可以参照xml描述、元数据描述方式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。
图5是根据本法实施例二的数据资源的获取装置的结构示意图。如图5所示,该装置包括:获取模块50、访问处理模块52、切换模块54。
其中,获取模块50,用于获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器的分布缓存路径和用于访问远程服务器的远程访问路径;访问处理模块52,用于在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源;切换模块54,用于在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
本申请上述实施例一提供的方案,主要针对资源的访问路径的选择方式提供一种可配置化的建模思路,基于预先配置的查询路径信息和缓存配置信息,实现计算机客户端的动态访问控制,比较现有技术提供的数据集中式管控方法,这种可配置化的选择资源的方案基于可复制类数据的本质,将用于获取数据资源的客户端部署到业务请求的应用端,基于配置信息的描述,使得获取资源的路径可以根据需求进行切换,从而解决了现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题,达到成本、性能或风险的最优平衡。
比较现有的数据集中式架构部署,在用户对应用客户端的访问量和查询量剧增的情况下(例如在电子商务进行促销活动期间,应用端的访问量和查询量会在单位时间内剧增),如果每个用户发出业务请求之后,客户端都从远程访问远程服务器来获取资源,则会造成的当业务请求增加时服务器大规模的部署的成本优化问题,本申请上述实施例提供的一种配置查询路径信息和缓存配置信息的功能,使得将一部分业务请求查询的处理过程分流至缓存服务器,以减缓远程服务器的负担,同时加快了客户端获取资源的效率。同时该思路同样可以适用于其他客户端动态运行时控制设计。
例如,针对客户端的登录用户需要获取的资源属于更新率很低的数据时(例如,注册用户的基本信息:手机号、地址、账号等),就可以将这些更新率低的资源部署在分布式缓存服务器中,并预先配置查询路径信息为选择分布缓存路径,这样客户端在接收到业务请求获取用户的基本信息时,就可以从分布式缓存中获取。如果分布式缓存服务器发生故障或其他故障,导致无法成功获取资源,则切换至选择远程访问路径来从远程访问服务器中获取资源,从而实现了获取资源的路径可以根据需求进行切换,从而达到成本、性能或风险的最优平衡。
由此可知,为了更好的实现对部署在客户端的管控,实现最优资源的切换,最优资源并不是一成不变的,而是随着业务场景的变化而变化的,例如,用户的个性化信息是随时变化的,此时最优资源即数据本身,因为对数据采用复制的到缓存的方式,会增加数据一致性的维护成本,缓存命中率低下,适合直接从远程服务器获取,但是某个活动的时,由于同一份数据请求过多,会造成数据单点,通过对查询模式进行切换,能够做到负载转移和成本优化的目的,动态的切换查询路径,无需发布,即可达到最有资源选择的目的。目前该产品已在支付宝公司的数据查询技术中广泛使用,通过配置化的资源选择方案,可以动态的切换查询路径,达到在不同的容量要求、风险控制的情况下,动态的切换资源依赖的目的。
此处需要说明的是,上述获取模块50、访问处理模块52、切换模块54对应于实施例一中的步骤S20至步骤S22,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
优选地,如图6所示,本申请上述实施例中,在执行访问处理模块52之前,装置还可以包括:配置模块511、生成模块513。
其中,配置模块511,用于在配置服务器中配置查询路径信息和缓存配置信息;生成模块513,用于在查询路径信息为分布缓存路径的情况下,通过缓存配置信息对业务请求中的查询标识进行缓存对象关键词包装,生成业务请求对应的查询关键词,其中,分布式缓存服务器根据查询关键词查询得到业务请求对应的资源。
此处需要说明的是,上述配置模块511、生成模块513对应于实施例一中的步骤S221至步骤S225,二个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
优选地,如图7a和图7b所示,本申请上述实施例中,访问处理模块52可以包括:远程访问模块521,或者分布式缓存访问模块523。
其中,远程访问模块521,用于在远程访问路径的优先级高于分布缓存路径的情况下,直接选择通过远程访问路径访问远程服务器,获取业务请求对应的资源。
分布式缓存访问模块523,用于在分布缓存路径的优先级高于远程访问路径的情况下,优先选择通过分布缓存路径访问分布式缓存服务器,来获取业务请求对应的资源,在提取分布缓存路径失败的情况下,切换至选择远程访问路径访问分布式缓存服务器,来获取业务请求对应的资源。
此处需要说明的是,上述远程访问模块521,或者分布式缓存访问模块523对应于实施例一中的两种运行方式步骤,二个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
实施例3
本发明的实施例可以提供一种数据资源的获取系统,该数据资源的获取系统可以是包括多个相互交互的重大设备。
图8是根据本法实施例三的数据资源的获取系统的结构示意图。如图8所示,该数据资源的获取系统可以包括:客户端80、分布式缓存服务器82、远程服务器84、配置服务器86。
其中,配置服务器86,保存预先配置的查询路径信息和缓存配置信息;客户端80,与配置服务器建立通信关系,用于从配置服务器获取预先配置的查询路径信息和缓存配置信息,查询路径信息包括:用于访问分布式缓存服务器82的分布缓存路径和用于访问远程服务器84的远程访问路径;其中,客户端在接收到业务请求之后,通过查询路径信息选择访问分布式缓存服务器或远程服务器,并根据缓存配置信息查询得到业务请求对应的资源,其中,在从分布式缓存服务器获取资源失败的情况下,选择调用远程访问路径切换为访问远程服务器,来获取资源。
上述实施例中,在计算机客户端的搜索系统启动时,可以从配置服务器将需要的配置信息拉取到客户端,该配置信息至少可以包括查询路径信息,该查询路径信息描述了计算机客户端将要访问的服务器终端地址。
分析可知,上述系统方案提供了一种可以根据已经配置好的查询路径信息来选择访问分布式缓存服务器或远程服务器,从而获取该业务请求对应的当前资源,以当前流程中选择访问分布式缓存服务器来获取资源数据为例,从当前的分布式缓存服务器获取缓存的资源数据失败的情况下,才选择从远程服务器的远程访问路径来查询得到对应的资源数据。一种可选方案中,在分布式缓存服务器提供的缓存数据不可用的情况下,可以预先配置查询路径信息直接选择远程访问地址来访问远程服务器,从而获取资源,即上述步骤也提供了可以直接访问远程服务器的应用功能,在分布式缓存服务器提供的缓存数据可用时,可以调整配置信息,使得查询路径信息调整为分布缓存路径。
由此可知,本申请上述实施例三提供的方案,主要针对资源的访问路径的选择方式提供一种可配置化的建模思路,基于预先配置的查询路径信息和缓存配置信息,实现计算机客户端的动态访问控制,比较现有技术提供的数据集中式管控方法,这种可配置化的选择资源的方案基于可复制类数据的本质,将用于获取数据资源的客户端部署到业务请求的应用端,基于配置信息的描述,使得获取资源的路径可以根据需求进行切换,从而解决了现有技术无法根据客户端的需求来灵活控制资源的请求方式的技术问题,达到成本、性能或风险的最优平衡。
比较现有的数据集中式架构部署,在用户对应用客户端的访问量和查询量剧增的情况下(例如在电子商务进行促销活动期间,应用端的访问量和查询量会在单位时间内剧增),如果每个用户发出业务请求之后,客户端都从远程访问远程服务器来获取资源,则会造成的当业务请求增加时服务器大规模的部署的成本优化问题,本申请上述实施例提供的一种配置查询路径信息和缓存配置信息的功能,使得将一部分业务请求查询的处理过程分流至缓存服务器,以减缓远程服务器的负担,同时加快了客户端获取资源的效率。同时该思路同样可以适用于其他客户端动态运行时控制设计。
优选地,上述配置服务器86包括:配置处理器861,用于配置查询路径信息和缓存配置信息;
客户端80包括:客户端处理器801,用于在查询路径信息为分布缓存路径的情况下,通过缓存配置信息对业务请求中的查询标识进行缓存对象关键词包装,生成业务请求对应的查询关键词,其中,分布式缓存服务器根据查询关键词查询得到业务请求对应的资源。
在本申请提供的一种可选实施例中,客户端可以直接选择通过远程访问路径访问远程服务器,获取业务请求对应的资源,该方案可以通过如下步骤实现:
首先,依据远程访问路径发送业务请求至远程服务器。
然后,远程服务器根据业务请求从配置服务器中获取对应的模型配置信息和查询语句,其中,模型配置信息包括:用于表征业务请求对应的资源类型的领域模型,以及用于表征资源类型对应的资源信息表的数据模型。
最后,远程服务器根据查询语句和模型配置信息访问数据库,获取业务请求对应的资源。
本申请上述方案中的模型配置信息是一种用于描述模型描述配置的内容,其中,可以通过一种公共的语言或方式(如xml)来描述一个包含了“领域模型”以及和底层“数据模型”的内容及他们之间的映射关系,从而使得数据转换、底层不同数据库的适配来说能够使用一致的流程来处理。其中,数据模型是指从持久化或缓存设备中存储和获取数据,物理模型的针对存储和查询需求而设计,领域模型是针对业务需求而设计的内容。
例如,某一个客户信息对应的领域模型可以包含子模型:客户基本信息、手机信息、地址信息等,此时,该领域模型对应的数据模型可以为:平铺的客户信息表、手机信息表、地址信息表等。根据应用场景的不同,上述数据模型还可以是客户模型、银行卡模型等等,此时客户模型是否支持缓存获取模型,这些是在数据服务对外提供时,根据数据存储的路径预先设置到配置服务器中的,也可以随着存储路径的变化,修改配置,从而支持最优资源的选择。
优选地,本申请上述实施例中的远程服务器还可以提供对分布式缓存服务器进行缓冲数据重建的功能,该远程服务器可以包括:缓存重建处理器,用于从配置服务器获取缓存配置信息,并通过访问数据库获取到缓存配置信息对应的资源,在将缓存配置信息及其对应的资源组装成客户模型之后,将客户模型保存至分布式缓存服务器。
远程服务器提供的缓冲数据重建的功能,实现了一种在缓存服务器中进行缓存重建的过程,即实现如何将远程服务器中的数据在分布式缓存服务器中完成缓存重建的过程。本发明的分布式缓存服务器可以通过key->value的模式来获取需要进行缓存的缓存数据,即将关系数据库DB中以数据表形式保持的数据转换成key->value的模式在缓存服务器中进行保存,关系数据库的数据与缓存数据具有一一对应的关联关系。
上述方案通过,先获取缓存配置信息,根据缓存配置信息得到符合分布式缓存的数据保存格式中的查询关键字key(例如图4中该查询关键字key可以是缓存前缀客户ID),然后根据从数据库DB中获取该查询关键字key对应的资源,如图4所示的示例可知,该资源的可以包括以下任意一种或多种各类型的数据:客户基本信息、手机信息、地址信息,此处需要说明的,查询过程中资源的类型的数量与远程服务器与数据库DB交互的次数相同,即如果要获取上述客户基本信息、手机信息、地址信息三种类型的资源,则需要与数据库DB交互3次。最后根据缓存配置信息和对应的资源组装成一个客户模型。
由此,在当分布式缓存服务器中不存在数据时的应用场景中,可以通过远程服务器从数据库DB中获取到资源并组装成客户模型,放置到缓存服务器中,从而使得业务请求能直接从缓存服务器中获取到资源数据,使得后续的查询路径最优。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。