CN108667916B - 一种Web应用的数据访问方法及*** - Google Patents
一种Web应用的数据访问方法及*** Download PDFInfo
- Publication number
- CN108667916B CN108667916B CN201810371436.XA CN201810371436A CN108667916B CN 108667916 B CN108667916 B CN 108667916B CN 201810371436 A CN201810371436 A CN 201810371436A CN 108667916 B CN108667916 B CN 108667916B
- Authority
- CN
- China
- Prior art keywords
- access
- data
- interface
- access interface
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种Web应用的数据访问方法和***。通过多个访问接口对相应的目标数据进行访问,数据访问方法包括:获取所述多个访问接口的状态参数;根据所述多个访问接口的状态参数确定数据访问策略和数据缓存策略;根据所述数据缓存策略对目标数据进行缓存;以及根据所述数据访问策略对目标数据进行访问。据此,能够根据流量波动和***性能自适应调整缓存策略。能为访问频繁的数据提供更有效的缓存,在***性能不佳时通过设置数据缓存改善访问响应时间,以及保证了缓存数据的时效性。同时,可以使Web服务在整体性能和数据实时性上取得更好的平衡。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种Web应用的数据访问方法及***。
背景技术
随着互联网技术的发展和互联网服务能力的提高,很多大型Web应用所面对的数据访问量也急剧增加。为了提高访问速度,很多Web应用中采用了数据缓存技术。数据缓存主要涉及对哪些数据进行缓存和数据的缓存期两个方面。
相关技术中,通常是基于对数据的本身性质分类来预先设置针对不同性质的数据的缓存策略。例如,对于购物平台网站,可以将目标数据根据预期变更频繁度分为高频变更(如账户余额)、中频变更(如商品信息)、低频变更(如用户名)三类。然后,对低频变更数据做较长时间的缓存,对中频变更数据做较短时间的缓存或者不缓存,高频变更数据不缓存。并且,一旦缓存方案制定之后,对每一种类数据的缓存策略就固定下来,在之后的应用中不再变动。
这种固定模式的缓存策略可能导致的问题是,在流量高峰期,部分数据可能会由于没有使用缓存导致性能不佳;而在流量低峰期,又由于缓存过期时间较长而损失了数据实时性。对于流量突增的情况,甚至会导致***崩溃。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一,提供一种动态缓存的Web应用数据访问方法及装置,以在Web应用访问量和数据流量波动时提供自适应变化的缓存策略,保证***性能和数据实时性。
为达上述目的,本发明第一方面的实施例提供了一种Web应用的数据访问方法,通过多个访问接口对相应的目标数据进行访问,数据访问方法包括:获取所述多个访问接口的状态参数;根据所述多个访问接口的状态参数确定数据访问策略和数据缓存策略;根据所述数据缓存策略对目标数据进行缓存;以及根据所述数据访问策略对目标数据进行访问。
在一些实施例中,所述确定数据缓存策略包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期;所述确定数据访问策略包括:确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问。
在一些实施例中,所述访问接口的状态参数包括:访问接口的流量,所述流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量;和/或访问接口的响应耗时,所述响应耗时包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
在一些实施例中,根据多个访问接口的状态参数确定数据访问策略包括:当访问接口的实时流量小于第一预定义阈值时,该访问接口直接对目标数据库进行访问;和/或当访问接口的实时响应耗时小于第二预定义阈值时,该访问接口直接对目标数据库进行访问。
在一些实施例中,根据多个访问接口的状态参数确定数据缓存策略包括:将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。
在一些实施例中,所述根据各个访问接口的接口流量和接口响应耗时确定数据缓存策略包括:根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。
通过本发明的Web应用的数据访问方法,能够根据流量波动和***性能自适应调整缓存策略。从而,能为访问频繁的数据提供更有效的缓存,克服现有技术里中低频数据在高峰期导致访问速度瓶颈的问题;在***性能不佳时通过设置数据缓存改善访问响应时间;并且通过动态缓存更新策略,保证了缓存数据的时效性。同时,可以使Web服务在整体性能和数据实时性上取得更好的平衡。
为达上述目的,本发明第二方面实施例提供了一种Web应用的数据访问***,其包括:目标数据库,用于存储待访问的目标数据;缓存存储器,用于对目标数据进行缓存;多个访问接口模块,用于根据访问请求对相应的目标数据进行访问;接口监测模块,用于对所述多个访问接口的流量和响应耗时进行监测,生成监测结果;策略确定模块,用于根据接口监测模块的监测结果确定数据访问策略和数据缓存策略;缓存控制模块,用于根据所述数据缓存策略对目标数据进行缓存;以及访问控制模块,用于控制所述多个访问接口根据所述数据访问策略对目标数据进行访问。
在一些实施例中,所述策略确定模块确定数据缓存策略包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期;所述策略确定模块确定数据访问策略包括:确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问。
在一些实施例中,所述策略确定模块包括:接口性能获取单元,用于根据监测结果获取访问接口的状态参数;数据缓存策略确定单元,用于根据访问接口的状态参数确定数据缓存策略;数据访问策略确定单元,用于根据访问接口的状态参数确定数据访问策略。
在一些实施例中,所述访问接口的状态参数包括:访问接口的流量,所述流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量;和/或访问接口的响应耗时,所述响应耗时包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
在一些实施例中,数据访问策略确定单元根据访问接口的状态参数确定数据访问策略包括:当访问接口的流量小于第一预定义阈值时,该访问接口直接对目标数据库进行访问;和/或当访问接口的响应耗时小于第二预定义阈值时,该访问接口直接对目标数据库进行访问。
在一些实施例中,数据缓存策略确定单元根据访问接口的状态参数确定数据缓存策略包括:将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。
在一些实施例中,数据缓存策略确定单元根据访问接口的状态参数确定数据缓存策略包括:根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。
通过本发明的Web应用的数据访问***,能够根据流量波动和***性能自适应调整缓存策略。从而,能为访问频繁的数据提供更有效的缓存,克服现有技术里中低频数据在高峰期导致访问速度瓶颈的问题;在***性能不佳时通过设置数据缓存改善访问响应时间;并且通过动态缓存更新策略,保证了缓存数据的时效性。同时,可以使Web服务在整体性能和数据实时性上取得更好的平衡。
为了实现上述目的,本发明第三方面实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本发明的第一方面所述的Web应用的数据访问方法。
为了实现上述目的,本发明第四方面实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明的第一方面所述的Web应用的数据访问方法。
为了实现上述目的,本发明第五方面实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明的第一方面所述的Web应用的数据访问方法。
根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算机设备具有与根据本发明第一和第二方面的Web应用的数据访问方法和***类似的有益效果,在此不再赘述。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明实施例的Web应用的数据访问方法的流程示意图;
图2是根据本发明实施例的目标数据分组示意图;
图3是根据本发明实施例的Web应用的数据访问***的结构框图;
图4是根据本发明实施例的数据访问和缓存更新示意图;以及
图5是根据本发明实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
现有Web访问中的数据缓存方式,性能不佳的主要原因在于缓存策略的僵化固定,不能对访问流量变化做出及时的反应,也不能及时跟进目标数据库的变化。具体原因为:高峰期,由于部分中低频数据未缓存或者缓存有效期较短,访问速度过慢,从而影响***整体性能。而低峰期,由于数据缓存有效期过长,而无法进行更新,导致可能目标数据库数据发生了改变而缓存中的数据并未改变,从而损失了数据实时性。对于异常的流量波动,例如,接口流量的陡增时,也不能自动调整缓存策略。
本发明的主要技术思路在于,通过对数据访问接口的实时监测,根据访问接口的工作状态对数据缓存策略和访问策略进行动态设置,以使缓存策略可以随着流量和响应耗时自适应调整和适时更新,保证数据访问效率和访问数据的实时性。
下面结合附图对本发明的具体实施方式进行详细说明。
图1是根据本发明实施例的Web应用的数据访问方法的流程示意图。其中,通过多个访问接口对相应的目标数据进行访问。特别是对于Web应用访问量较大或者访问路径较复杂的情况,可通过不同的接口实现对目标数据进行访问,每个接口可对应访问不同部分的目标数据。而接口的划分可以依据不同的应用目的实现。例如,对一个Web应用网站,可以根据访问请求的来源(是来自PC端的浏览器或者移动终端)、访问请求的目的(例如,访问针对的是目标数据库中不同的存储区域的数据,不同权限级别的数据,不同用户组的数据等)等,设置不同的接口来处理不同的访问请求。
具体而言,Web应用的数据访问方法可包括步骤S110到S140。
在步骤S110,获取所述多个访问接口的状态参数。访问接口的状态可以由访问流量和响应耗时来描述。因此,访问接口的状态参数可以包括流量和/或响应耗时。其中,访问接口的流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量。而访问接口的响应耗时可包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
预定义时间段可以是对于该Web应用具有典型区分意义的预定义时间段。所述预定义时间段可以是一个较长的时间区间,例如一天(一星期,一个月年)之内,或者若干天(若干星期,若干月等)之内。或者预定义时间段也可以是每个时间周期内的指定时间段,例如每天中的指定时间段(某个或某几个小时),每年中的法定工作日或休息日等。所谓实时访问流量和实时响应耗时,可以理解为是在当前时间之前一个相对较短的时间窗口内(例如,若干秒或者若干分钟内)的短时平均访问流量和平均响应耗时。
在步骤S120,根据所述多个访问接口的状态参数确定数据访问策略和数据缓存策略。
其中,确定数据缓存策略可以包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期。其实质是通过访问接口的状态参数来确定每一部分目标数据(每个分组)的访问需求和相应状态,从而确定该部分数据相应的缓存策略。所述确定数据访问策略可包括确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问。
图2是根据本发明实施例的目标数据分组示意图。可以根据每个访问接口对应的目标数据来进行分组,例如,每个访问接口所对应访问目标数据作为一个分组。但是数据分组和访问接口并不要求一定是一一对应的。在一些实施例中,对于同样目的数据的不同访问来源的访问请求可能会调用不同的接口实现访问。例如,对于购物网站,通过移动APP端或者网页进行访问同一个账户时,使用的接口可能是不同的。但是这些不同的接口访问的可能是同样的目标数据。亦即,在某些实施例中,不同的访问接口可能对应部分相同的数据分组。此时,在根据所述多个访问接口的状态参数确定数据访问策略和数据缓存策略时,对于每个数据分组,可以综合考虑访问该数据组的所有访问接口的状态参数,根据综合的流量和访问响应时间来确定。
在另一些实施例中,访问接口和目的数据可能呈现交叉关系,例如,两个不同的访问接口所需访问的目的数据不是完全相同,而是部分交叉的。此时,可以将两个不同访问接口的目的数据的交叉部分作为一个分组,其余没有交叉的部分作为一个分组。从而便于计算每一分组的目的数据的综合访问量和响应时间。
一般来说,当访问接口对应的目标数据处于被缓存的状态时,可以通过访问缓存存储器中的数据来获取相应的目标数据,以获取较快的访问速度。当访问接口对应的目标数据处于非缓存的状态时,则访问接口直接对目标数据库进行访问。
在某些特殊的情况下,为了进一步平衡Web服务器的负载或减轻缓存负担,对于缓存的数据,也可以直接进行数据库访问而不读取缓存。例如,对于一些访问接口的实时流量较小(例如小于第一预定义阈值时)的情况,说明用户需求较少,不需要太快的响应速度,即可在短时间内完成所有用户访问,该访问接口可直接对目标数据库进行访问。或者是当访问接口的反应速度已经足够快(例如,该访问接口对应的硬件设施较好或者网络状态理想,实时响应耗时小于第二预定义阈值时),不需要使用缓存进一步加快反应速度,该访问接口直接对目标数据库进行访问。那么,在缓存存储器负荷较大时,另这些访问接口减少缓存的使用,可以减轻缓存负担。
对于每个数据分组的具体缓存策略,则可以根据监测的接口状态参数进行设置和调整。一个总的原则是可将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。亦即流量越大,缓存有效期越长,流量越小,缓存有效期越短,甚至不缓存(可理解为缓存有效期为0);接口性能越差,例如响应时间越长,缓存有效期越大,性能越好,例如响应时间越短,则缓存有效期越短,甚至不缓存(可理解为缓存有效期为0)。
根据访问接口的状态参数确定数据缓存策略可以在多个预定义的时间节点进行。在一些实施例中,可根据Web应用的用户访问规律设定预定义时间节点,在一天中的不同忙/闲时间段动态设置不同的缓存策略;或者每隔固定的时间间隔调整一次。也可以设置指定的触发条件,在特定的情况下进行调整。例如,可以将实时流量超过预定值作为触发条件,当流量发生大的波动,突然出现访问高峰时,对缓存策略进行及时调整。
具体而言,可根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。而加权的参数则可以根据Web应用的需要进行选择和设定。
在步骤S130,根据所述数据缓存策略对目标数据进行缓存。当缓存策略确定或更新后,对目标数据库中的数据内容按照缓存策略载入到缓存存储器中,提供给各个接口快速访问。
在步骤S140,根据所述数据访问策略对目标数据进行访问。各个访问接口根据指定的数据访问策略,通过缓存存储器或者目标数据库访问相应的目标数据。
通过本发明的Web应用的数据访问方法,能够根据流量波动和***性能自适应调整缓存策略。从而,能为访问频繁的数据提供更有效的缓存,克服现有技术里中低频数据在高峰期导致访问速度瓶颈的问题;在***性能不佳时通过设置数据缓存改善访问响应时间;并且通过动态缓存更新策略,保证了缓存数据的时效性。同时,可以使Web服务在整体性能和数据实时性上取得更好的平衡。
为了实现上述第一方面实施例中的方法,本发明第二方面的实施例提出了一种Web应用的数据访问***。图3是根据本发明实施例的Web应用的数据访问***的结构框图。其中,根据本发明的Web应用的数据访问***100可以包括目标数据库110,缓存存储器120,多个访问接口模块130,接口监测模块140,策略确定模块150,缓存控制模块160以及访问控制模块170。
目标数据库110用于存储待访问的目标数据。目标数据库110可以基于相关技术中的各种数据库技术实现,本发明对此没有特殊要求。
缓存存储器120用于对目标数据进行缓存。缓存存储器120用于提供数据的快速访问,可以基于相关技术中的各种数据缓存技术实现,本发明对此没有特殊要求。
多个访问接口模块130用于根据访问请求对相应的目标数据进行访问。访问接口模块可以是调用Web应用的WebService(Web服务)数据库访问接口来实现,也可以是单独设置的数据访问接口。只要可以实现指定的目标数据访问功能即可。
接口监测模块140用于对所述多个访问接口的流量和响应耗时进行监测,生成监测结果。接口监测模块140的监测可以是实时的,并将监测结果发送到测量确定模块,由测量确定模块进行处理,用来制定和更新数据访问策略和数据缓存策略。
策略确定模块150用于根据接口监测模块的监测结果确定数据访问策略和数据缓存策略。
确定数据缓存策略可包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期;确定数据访问策略包括:确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问。
具体而言,所述策略确定模块可包括接口性能获取单元,数据缓存策略确定单元,和数据访问策略确定单元。
接口性能获取单元用于根据监测结果获取访问接口的状态参数。所述访问接口的状态参数可包括:访问接口的流量和/或访问接口的响应耗时。所述流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量。所述响应耗时包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
数据缓存策略确定单元用于根据访问接口的状态参数确定数据缓存策略。可将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。例如,根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。
数据访问策略确定单元用于根据访问接口的状态参数确定数据访问策略。当访问接口对应的目标数据处于被缓存的状态时,可以通过访问缓存存储器中的数据来获取相应的目标数据,以获取较快的访问速度。当访问接口对应的目标数据处于非缓存的状态时,则访问接口直接对目标数据库进行访问。在一些实施例中,也可以进一步设置为当访问接口的流量小于第一预定义阈值时,该访问接口直接对目标数据库进行访问。或者是当访问接口的响应耗时小于第二预定义阈值时,该访问接口直接对目标数据库进行访问。
缓存控制模块160用于根据数据缓存策略对目标数据进行缓存,刷新缓存存储器。当缓存策略确定或更新后,对目标数据库中的数据内容按照缓存策略载入到缓存存储器中,从而提供给各个接口快速访问,以及将不再需要缓存的数据删除。
访问控制模块170用于控制所述多个访问接口根据所述数据访问策略实现对目标数据的访问。控制各个访问接口根据指定的数据访问策略,通过缓存存储器或者目标数据库访问相应的目标数据。
需要说明的是,前述对本发明的方法实施例的解释说明也适用于本发明的装置实施例,为避免冗余,在装置实施例中没有对所有细节进行重复。未尽之处,本领域技术人员可以参见上述结合图1到2对本发明方法实施例的相关描述。
参见图4,图4是根据本发明实施例的数据访问和缓存更新示意图。用户200可通过浏览器300或者安装在移动终端应用程序(APP)400访问web应用服务器,web应用服务器可根据不同的访问途径和访问目的,调用相应的访问接口模块130来实现用户对相应目标数据的访问。在web应用服务器的工作过程中,接口监测模块140保持对各个访问接口模块的状态参数的监测,并将监测结果发送到策略确定模块150。策略确定模块150按照预定义的更新时间节点或者时间间隔,根据接口监测模块140的监测结果调整缓存策略。或者,也可以由***管理员600主动修改缓存策略。当缓存策略修改后,按照新的缓存策略控制缓存存储器120从目标数据库载入相应的需缓存的目标数据和设置缓存数据的有效期。
通过本发明的Web应用的数据访问***,能够根据流量波动和***性能自适应调整缓存策略。从而,能为访问频繁的数据提供更有效的缓存,克服现有技术里中低频数据在高峰期导致访问速度瓶颈的问题;在***性能不佳时通过设置数据缓存改善访问响应时间;并且通过动态缓存更新策略,保证了缓存数据的时效性。同时,可以使Web服务在整体性能和数据实时性上取得更好的平衡。
本发明第三方面的实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现根据本发明第一方面实施例所述的Web应用的数据访问方法。
一般来说,用于实现本发明方法的计算机指令的可以采用一个或多个计算机可读的介质的任意组合来承载。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。所谓非临时性计算机可读介质可以包括任何计算机可读介质,除了临时性地传播中的信号本身。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明第四方面的实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面实施例所述的Web应用的数据访问方法。
本发明第五方面实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的Web应用的数据访问方法。
根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算机设备,可以参照根据本发明第一方面实施例具体描述的内容实现,并具有与根据本发明第一方面的Web应用的数据访问方法类似的有益效果,在此不再赘述。
图5示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图5显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12可以通用计算设备的形式实现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机可读存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。要说明的是,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
尽管上面已经示出和描述了本发明的实施例,应当理解的是,上述实施例是示例性的,不能解释为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (13)
1.一种Web应用的数据访问方法,其特征在于,通过多个访问接口对相应的目标数据进行访问,数据访问方法包括:
获取所述多个访问接口的状态参数,所述访问接口的状态参数包括:访问接口的流量和响应耗时;
根据所述多个访问接口的状态参数确定数据访问策略和数据缓存策略;其中,所述确定数据缓存策略包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期;所述确定数据访问策略包括:确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问;
根据所述数据缓存策略对目标数据进行缓存;以及
根据所述数据访问策略对目标数据进行访问。
2.根据权利要求1所述的Web应用的数据访问方法,其特征在于,所述流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量;所述响应耗时包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
3.根据权利要求2所述的Web应用的数据访问方法,其特征在于,根据多个访问接口的状态参数确定数据访问策略包括:
当访问接口的实时流量小于第一预定义阈值时,该访问接口直接对目标数据库进行访问;和/或
当访问接口的实时响应耗时小于第二预定义阈值时,该访问接口直接对目标数据库进行访问。
4.根据权利要求2所述的Web应用的数据访问方法,其特征在于,根据多个访问接口的状态参数确定数据缓存策略包括:
将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或
将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。
5.根据权利要求4所述的Web应用的数据访问方法,其特征在于,所述根据各个访问接口的接口流量和接口响应耗时确定数据缓存策略包括:
根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。
6.一种Web应用的数据访问***,其特征在于,包括:
目标数据库,用于存储待访问的目标数据;
缓存存储器,用于对目标数据进行缓存;
多个访问接口模块,用于根据访问请求对相应的目标数据进行访问;
接口监测模块,用于对所述多个访问接口的流量和响应耗时进行监测,生成监测结果;
策略确定模块,用于根据接口监测模块的监测结果确定数据访问策略和数据缓存策略;其中,所述策略确定模块确定数据缓存策略包括:根据对应的访问接口将目标数据进行分组,确定每组数据的缓存与否,以及每组缓存的数据的缓存有效期;所述策略确定模块确定数据访问策略包括:确定每个接口对相应的目标数据的访问方式是通过缓存存储器访问或者是直接对目标数据库进行访问;
缓存控制模块,用于根据所述数据缓存策略对目标数据进行缓存;以及
访问控制模块,用于控制所述多个访问接口根据所述数据访问策略对目标数据进行访问。
7.根据权利要求6所述的Web应用的数据访问***,其特征在于,所述策略确定模块包括:
接口性能获取单元,用于根据监测结果获取访问接口的状态参数,所述访问接口的状态参数包括:访问接口的流量和响应耗时;
数据缓存策略确定单元,用于根据所述访问接口的状态参数确定数据缓存策略;以及
数据访问策略确定单元,用于根据所述访问接口的状态参数确定数据访问策略。
8.根据权利要求7所述的Web应用的数据访问***,其特征在于,所述访问接口的状态参数包括:
访问接口的流量,所述流量包括访问接口在预定义时间段内的累计的平均流量和/或实时访问流量;和/或
访问接口的响应耗时,所述响应耗时包括访问接口在预定义时间段内的平均响应耗时和/或实时响应耗时。
9.根据权利要求8所述的Web应用的数据访问***,其特征在于,数据访问策略确定单元根据访问接口的状态参数确定数据访问策略包括:
当访问接口的流量小于第一预定义阈值时,该访问接口直接对目标数据库进行访问;和/或
当访问接口的响应耗时小于第二预定义阈值时,该访问接口直接对目标数据库进行访问。
10.根据权利要求8所述的Web应用的数据访问***,其特征在于,数据缓存策略确定单元根据访问接口的状态参数确定数据缓存策略包括:
将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的流量正相关;和/或
将每个访问接口对应的目标数据的缓存有效期设置为与该访问接口的响应耗时正相关。
11.根据权利要求10所述的Web应用的数据访问***,其特征在于,数据缓存策略确定单元根据访问接口的状态参数确定数据缓存策略包括:
根据每个访问接口在预定义时间段内累计的平均流量、接口平均响应耗时,以及当前时间的实时访问流量和实时响应耗时,通过加权计算确定该访问接口对应的目标数据的缓存有效期。
12.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现根据权利要求1-5中任一项所述的Web应用的数据访问方法。
13.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据权利要求1-5中任一项所述的Web应用的数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810371436.XA CN108667916B (zh) | 2018-04-24 | 2018-04-24 | 一种Web应用的数据访问方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810371436.XA CN108667916B (zh) | 2018-04-24 | 2018-04-24 | 一种Web应用的数据访问方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667916A CN108667916A (zh) | 2018-10-16 |
CN108667916B true CN108667916B (zh) | 2021-08-13 |
Family
ID=63780035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810371436.XA Active CN108667916B (zh) | 2018-04-24 | 2018-04-24 | 一种Web应用的数据访问方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108667916B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532101B (zh) * | 2019-09-03 | 2022-05-03 | 中国联合网络通信集团有限公司 | 微服务集群的部署***及方法 |
CN110865895B (zh) * | 2019-10-25 | 2023-07-04 | 北京三快在线科技有限公司 | 访问流量控制方法、装置、电子设备及存储介质 |
CN110968603B (zh) * | 2019-11-29 | 2023-07-04 | 中国银行股份有限公司 | 一种数据访问方法及装置 |
CN111339472A (zh) * | 2020-03-16 | 2020-06-26 | 上海英方软件股份有限公司 | 一种提高web***的访问速度的方法、装置及*** |
CN113760974A (zh) * | 2020-09-08 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 动态缓存的方法、装置和*** |
CN116303233A (zh) * | 2022-12-19 | 2023-06-23 | 广州市玄武无线科技股份有限公司 | 一种数据存储的管理方法、装置、设备和计算机存储介质 |
CN117519837B (zh) * | 2024-01-02 | 2024-06-11 | 暗物智能科技(广州)有限公司 | 一种接口管理方法及接口管理*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646115A (zh) * | 2013-12-26 | 2014-03-19 | 浙江宇天科技股份有限公司 | 一种用于客户端访问网页的方法和*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484044B2 (en) * | 2003-09-12 | 2009-01-27 | Intel Corporation | Method and apparatus for joint cache coherency states in multi-interface caches |
US7529903B2 (en) * | 2005-07-05 | 2009-05-05 | International Business Machines Corporation | Systems and methods for memory migration |
US8965819B2 (en) * | 2010-08-16 | 2015-02-24 | Oracle International Corporation | System and method for effective caching using neural networks |
CN102325159B (zh) * | 2011-07-14 | 2014-06-04 | 华中科技大学 | 一种虚拟实验平台离线应用交互*** |
CN103533042B (zh) * | 2013-10-10 | 2018-06-22 | 北京奇虎科技有限公司 | 基于位置的信息发布方法和装置 |
CN106681990B (zh) * | 2015-11-05 | 2019-10-25 | 华中科技大学 | 一种移动云存储环境下缓存数据的预取方法 |
CN105577822B (zh) * | 2016-01-27 | 2018-10-12 | 北京国电通网络技术有限公司 | 基于cdn节点的缓存集中管理*** |
CN106850572B (zh) * | 2016-12-29 | 2020-07-21 | 网宿科技股份有限公司 | 目标资源的访问方法和装置 |
-
2018
- 2018-04-24 CN CN201810371436.XA patent/CN108667916B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646115A (zh) * | 2013-12-26 | 2014-03-19 | 浙江宇天科技股份有限公司 | 一种用于客户端访问网页的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN108667916A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667916B (zh) | 一种Web应用的数据访问方法及*** | |
US8473960B2 (en) | Vector throttling to control resource use in computer systems | |
US10838626B2 (en) | Methods, apparatuses, and computer program products for controlling write requests in storage system | |
US7246205B2 (en) | Software controlled dynamic push cache | |
US9886395B2 (en) | Evicting cached stores | |
CN113381944B (zh) | ***限流方法、装置、电子设备、介质和程序产品 | |
CN113391765A (zh) | 基于分布式存储***的数据存储方法、装置、设备及介质 | |
US9152220B2 (en) | Incremental preparation of videos for delivery | |
CN109981702B (zh) | 一种文件存储方法及*** | |
US9372725B2 (en) | Dynamically adjusting wait periods according to system performance | |
US20180352020A1 (en) | Perfect application capacity analysis for elastic capacity management of cloud-based applications | |
WO2020034729A1 (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN112799824A (zh) | 一种限流方法、装置、设备和存储介质 | |
US8627124B2 (en) | Techniques for performing storage power management | |
US8429348B2 (en) | Method and mechanism for delaying writing updates to a data cache | |
US20130145075A1 (en) | Dynamically managing memory lifespan in hybrid storage configurations | |
CN112631504A (zh) | 利用堆外内存实现本地缓存的方法和装置 | |
US8589624B2 (en) | Systems and methods for background destaging storage tracks | |
US20210117253A1 (en) | Method, device, and computer program product for managing processes | |
US8930589B2 (en) | System, method and computer program product for monitoring memory access | |
US20190228083A1 (en) | Managing application resources based on funnels applied in site navigation | |
EP3679739B1 (en) | Caching and providing data to a device based on available resources | |
US20070150653A1 (en) | Processing of cacheable streaming data | |
EP3599547B1 (en) | Elastic storage volume type selection and optimization engine for public cloud environments | |
CN112579282A (zh) | 数据处理方法、装置、***、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |