CN114610762A - 数据请求的三级响应方法、系统、设备及存储介质 - Google Patents
数据请求的三级响应方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114610762A CN114610762A CN202210204705.XA CN202210204705A CN114610762A CN 114610762 A CN114610762 A CN 114610762A CN 202210204705 A CN202210204705 A CN 202210204705A CN 114610762 A CN114610762 A CN 114610762A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- access request
- openresty
- data access
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据响应领域,公开了一种数据请求的三级响应方法、系统、设备及存储介质。该方法包括:判断数据访问请求是否能在openResty缓存数据库中被查询出;将数据访问请求对应的openResty缓存数据发送至数据访问请求对应的发出地址;若在未能被查询出,则发送数据访问请求至redis缓存系统中;判断数据访问请求是否能在redis缓存数据库中被查询出;将数据访问请求对应的redis缓存数据发送至数据访问请求对应的发出地址;若在redis缓存数据库不能被查询出,则发送数据访问请求至mysql存储系统中;判断数据访问请求是否能在mysql数据库中被查询出;将对应的mysql数据发送至数据访问请求对应的发出地址;若未能查询出,则将数据访问请求对应的数据设置为空白数据,生成结果数据。
Description
技术领域
本发明涉及数据响应领域,尤其涉及一种数据请求的三级响应方法、系统、设备及存储介质。
背景技术
目前随着网站的访问量越来越大,流量越来越多,数据也越来越庞大,数据的查询非常的频繁,并发量非常高,特别是热点数据,当所有的查询都访问一个数据库中的时候会造成数据库的连接占满,响应时间变长,造成系统整体的性能下降,严重情况下甚至会导致系统的崩溃,网站无法访问,严重影响用户的体验,而且目前mysql数据库是关系型数据库,主要瓶颈是容灾差,监控数据差,容易达到性能的瓶颈,在大量的数据查询下表现得非常缓慢,不适用于高并发环境下热点数据的即时快速的查询。
因此,针对当前的mysql数据库无法适应大量数据查询的高并发场景,需要一种技术解决当前问题。
发明内容
本发明的主要目的在于解决当前的mysql数据库无法适应大量数据查询的高并发场景的技术问题。
本发明第一方面提供了一种数据请求的三级响应方法,所述数据请求的三级响应方法应用于数据请求的三级响应系统,所述数据请求的三级响应系统包括:openResty缓存系统、redis缓存系统、mysql存储系统,所述数据请求的三级响应方法包括:
所述openResty缓存系统接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
可选的,在本发明第一方面的第一种实现方式中,所述数据请求的三级响应系统还包括:canal监控系统,所述canal监控系统监控所述mysql存储系统的binglog日志,判断所述binglog日志是否存在变动;
若binglog日志存在变动,则读取所述binglog日志的变动数据,将所述变动数据发送至所述openResty缓存系统和所述redis缓存系统中。
可选的,在本发明第一方面的第二种实现方式中,所述mysql存储系统放置在K8S容器中,所述判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出包括:
读取所述数据访问请求的请求参数,基于预置k8s管理组件,匹配所述请求参数对应的DNS地址,得到匹配结果;
判断所述匹配结果是否为空;
若为空,则将所述数据访问请求对应的数据确定不能在mysql数据库中被查询出;
若不为空,则根据所述DNS地址,查询出所述K8S容器中的pod镜像,将所述pod镜像确定为查询出的mysql数据库。
可选的,在本发明第一方面的第三种实现方式中,所述将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应地址包括:
读取所述数据访问请求对应的redis缓存数据;
基于LUR脚本,将所述redis缓存数据存储至所述openResty缓存系统中,用于所述数据访问请求对应的发出地址从所述openResty缓存系统获取访问数据。
可选的,在本发明第一方面的第四种实现方式中,所述将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统包括:
将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据;
将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中。
可选的,在本发明第一方面的第五种实现方式中,在所述将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据之后,在所述将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中之前,还包括:
对所述缓存增加数据设置过期时刻,用于防止所述openResty缓存系统的缓存超容量。
可选的,在本发明第一方面的第六种实现方式中,所述openResty缓存系统接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出包括:
所述openResty缓存系统接收数据访问请求;
分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程饱和,则将所述数据访问请求锁定,并持续分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程未饱和,则判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出。
本发明第二方面提供了一种数据请求的三级响应系统,所述数据请求的三级响应系统包括:
openResty缓存系统、redis缓存系统、mysql存储系统;
所述openResty缓存系统,用于接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统,用于接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统,用于接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
本发明第三方面提供了一种数据请求的三级响应设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据请求的三级响应设备执行上述的数据请求的三级响应方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据请求的三级响应方法。
在本发明实施例中,提供一种数据存储方案,能显著提升系统在访问热点数据时候的性能问题。提高l系统的吞吐量,健壮性,高可用性,让网站在越来越大的流量下,能抗住更高的并发量,访问量,给系统的整体性能带来了显著的提升,即便在瞬时增大并发量的情况下,也能够带来很好的响应速度,给用户带来了很好的体验感,不在浪费用户无谓的时间去等待系统的响应。
附图说明
图1为本发明实施例中数据请求的三级响应方法的一个实施例示意图;
图2为本发明实施例中数据请求的三级响应系统的一个实施例示意图;
图3为本发明实施例中数据请求的三级响应系统的另一个实施例示意图;
图4为本发明实施例中数据请求的三级响应设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种数据请求的三级响应方法、系统、设备及存储介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据请求的三级响应方法的一个实施例,所述数据请求的三级响应系统包括:openResty缓存系统、redis缓存系统、mysql存储系统,所述数据请求的三级响应方法包括:
101、所述openResty缓存系统接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
在本实施例中,openResty缓存系统接收到数据访问请求,数据访问请求的参数为访问具体数据的参数数据,先在openResty缓存系统的openResty缓存数据库中进行查询判断,openResty缓存数据库是在本地缓存的数据库,相当于在本地缓存中先进行第一步判断数据访问请求是否可以被访问到,如果可以访问到则认为已经查询出,如果没有被查询出,则需要进行第二级的响应。
进一步的,“openResty缓存系统接收数据访问请求,判断数据访问请求对应的数据是否能在openResty缓存数据库中被查询出”还可以执行以下步骤:
1011、openResty缓存系统接收数据访问请求;
1012、分析openResty缓存数据库的处理线程是否饱和;
1013、若openResty缓存数据库的处理线程饱和,则将数据访问请求锁定,并持续分析openResty缓存数据库的处理线程是否饱和;
1014、若openResty缓存数据库的处理线程未饱和,则判断数据访问请求对应的数据是否能在openResty缓存数据库中被查询出。
在1011-1014步骤中,openResty缓存系统同时处理请求是有限制的,一般来说是基于硬件的线程情况,如果openResty缓存系统的处理线程没有饱和就可以执行openResty缓存数据库的查询情况,而如果处理线程饱和了,则需要按排序队列将数据访问请求锁定,直至线程不饱和后按照排序队列处理请求。
102、若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
在本实施例中,在openResty缓存数据库的本地缓存中更能够查询到相关的请求数据,则进一步的将openResty缓存数据传输至数据访问请求的发出地址即可完成本次响应。
103、若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
104、所述redis缓存系统接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
在103-104步骤中,openResty缓存系统无法查询出数据,则将数据访问请求发送到redis缓存系统中,进入二级响应,如果redis数据库能够响应该数据请求,则同样不用将数据访问请求进入mysql数据库查询即可得到相关的数据。
105、若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
在本实施例中,redis缓存数据库能够将数据访问请求的参数信息找到相对应的数据,则不需要进一步执行,数据访问请求没有进入mysql数据库,mysql数据库的处理压力被二级响应分担了。
进一步的,在105还可以执行以下步骤:
1051、读取所述数据访问请求对应的redis缓存数据;
1052、基于LUR脚本,将所述redis缓存数据存储至所述openResty缓存系统中,用于所述数据访问请求对应的发出地址从所述openResty缓存系统获取访问数据。
在1051-1052步骤中,redis缓存数据通过LUR脚本缓存到openResty本地缓存中,之后用户再次访问的时候则可以直接从一级缓存openResty本地缓存中获取到数据。
106、若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
在本实施例中,redis缓存系统无法查询处理数据访问请求,则需要第三级响应,最终将数据访问请求发送到mysql存储系统中。
107、所述mysql存储系统接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
在本实施例中,mysql存储系统接收到访问请求,在mysql存储数据库中进行匹配判断是否能查询出数据访问请求对应的数据,这里是第三级的数据响应过程,由于之前的两级响应降低了mysql存储数据库的查询压力,改进了mysql数据库的处理高并发的能力。
进一步的,在107还可以执行以下步骤:
1071、mysql存储系统放置在K8S容器中,所述判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出包括:
1072、读取所述数据访问请求的请求参数,基于预置k8s管理组件,匹配所述请求参数对应的DNS地址,得到匹配结果;
1073、判断所述匹配结果是否为空;
1074、若为空,则将所述数据访问请求对应的数据确定不能在mysql数据库中被查询出;
1075、若不为空,则根据所述DNS地址,查询出所述K8S容器中的pod镜像,将所述pod镜像确定为查询出的mysql数据库。
在1071-1075步骤中,mysql存储系统基于K8S容器搭建,mysql存储系统设置有N个mysql数据库,mysql数据库放置在一个node节点的docker下pod镜像中,先要将请求参数传输在k8s管理组件也即是API server上,由API server分析DNS地址后传递到相应的节点node的kubelet中,由kubelet在docker中拿取出数据访问请求匹配的mysql数据库,再将请求参数在mysql数据库中查询,判断mysql数据库是否能匹配出请求参数的数据,如果匹配出则认为是查询到相关数据,如果没有匹配到则认为是没有相关数据。由于K8S容器的具有异地容灾的属性,将mysql存储系统部署在K8S容器中,增大mysql存储系统的存储容量也可以保证mysql的稳定性。
108、若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
109、若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
在108-109步骤中,如果mysql数据库中能查询出mysql数据作为响应数据,将该响应数据发送至数据访问请求对应的发出地址即完成三级响应数据。
如果mysql数据库中未能查询出mysql数据,则将数据访问请求确定为key数据,空白数据null确定为value数据,产生结果数据,将该结果数据输送至openResty缓存系统,由openResty缓存系统缓存,并openResty缓存系统将该空白数据反馈给用户,完成三级响应过程。
进一步的,在109可以执行以下步骤:
1091、将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据;
1092、将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中。
在1091-1092步骤中,数据访问请求的参数信息确定为key数据,将空白数据null确定为value数据,生成缓存增加数据,缓存增加数据增加至openResty缓存系统的openResty缓存数据库中,保证下次相同的数据访问请求可以直接在openResty缓存系统中查询出null数据反馈,不需要在整个系统中进行三级响应处理访问请求。
进一步的,在1091与1092之间,还可以执行以下步骤:
1093、对所述缓存增加数据设置过期时刻,用于防止所述openResty缓存系统的缓存超容量。
在1093步骤中,openResty缓存系统的缓存容量是有限的,必须要定期清除掉过时的信息,因此设置过期时刻可以保证openResty缓存系统的缓存不会穿透,这里的缓存超容量会导致系统奔溃,因此增加过期时刻可以避免奔溃情况。
进一步的,在101-109任何两个步骤之间可以执行以下步骤:
110、所述数据请求的三级响应系统还包括:canal监控系统,所述canal监控系统监控所述mysql存储系统的binglog日志,判断所述binglog日志是否存在变动;
111、若binglog日志存在变动,则读取所述binglog日志的变动数据,将所述变动数据发送至所述openResty缓存系统和所述redis缓存系统中。
在110-111步骤中,canal监控系统监控mysql存储系统的binglog日志,如果binglog日志记录出现数据变动,将数据变动的同步更新在redis缓存系统和openResty缓存系统里,降低mysql存储系统的压力。
在本发明实施例中,提供一种数据存储方案,能显著提升系统在访问热点数据时候的性能问题。提高系统的吞吐量,健壮性,高可用性,让网站在越来越大的流量下,能抗住更高的并发量,访问量,给系统的整体性能带来了显著的提升,即便在瞬时增大并发量的情况下,也能够带来很好的响应速度,给用户带来了很好的体验感,不在浪费用户无谓的时间去等待系统的响应。
上面对本发明实施例中数据请求的三级响应方法进行了描述,下面对本发明实施例中数据请求的三级响应系统进行描述,请参阅图2,本发明实施例中数据请求的三级响应系统一个实施例,所述数据请求的三级响应系统包括:
openResty缓存系统201、redis缓存系统202、mysql存储系统203;
所述openResty缓存系统201,用于接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统202,用于接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统203,用于接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
在本发明实施例中,提供一种数据存储方案,能显著提升系统在访问热点数据时候的性能问题。提高系统的吞吐量,健壮性,高可用性,让网站在越来越大的流量下,能抗住更高的并发量,访问量,给系统的整体性能带来了显著的提升,即便在瞬时增大并发量的情况下,也能够带来很好的响应速度,给用户带来了很好的体验感,不在浪费用户无谓的时间去等待系统的响应。
请参阅图3,本发明实施例中数据请求的三级响应系统的另一个实施例,所述数据请求的三级响应系统包括:
openResty缓存系统201、redis缓存系统202、mysql存储系统203;
所述openResty缓存系统201,用于接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统202,用于接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统203,用于接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
其中,所述数据请求的三级响应系统还包括canal监控系统204,所述canal监控系统204用于:
监控所述mysql存储系统的binglog日志,判断所述binglog日志是否存在变动;
若binglog日志存在变动,则读取所述binglog日志的变动数据,将所述变动数据发送至所述openResty缓存系统和所述redis缓存系统中。
其中,所述mysql存储系统放置在K8S容器中,所述mysql存储系统203具体用于:
读取所述数据访问请求的请求参数,基于预置k8s管理组件,匹配所述请求参数对应的DNS地址,得到匹配结果;
判断所述匹配结果是否为空;
若为空,则将所述数据访问请求对应的数据确定不能在mysql数据库中被查询出;
若不为空,则根据所述DNS地址,查询出所述K8S容器中的pod镜像,将所述pod镜像确定为查询出的mysql数据库。
其中,所述redis缓存系统202具体用于:
读取所述数据访问请求对应的redis缓存数据;
基于LUR脚本,将所述redis缓存数据存储至所述openResty缓存系统中,用于所述数据访问请求对应的发出地址从所述openResty缓存系统获取访问数据。
其中,所述mysql存储系统203具体用于:
将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据;
将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中。
其中,所述数据请求的三级响应系统还包括时刻设置模块205,所述时刻设置模块205具体用于:
对所述缓存增加数据设置过期时刻,用于防止所述openResty缓存系统的缓存穿透。
其中,所述openResty缓存系统201具体用于:
所述openResty缓存系统接收数据访问请求;
分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程饱和,则将所述数据访问请求锁定,并持续分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程未饱和,则判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出
在本发明实施例中,提供一种数据存储方案,能显著提升系统在访问热点数据时候的性能问题。提高系统的吞吐量,健壮性,高可用性,让网站在越来越大的流量下,能抗住更高的并发量,访问量,给系统的整体性能带来了显著的提升,即便在瞬时增大并发量的情况下,也能够带来很好的响应速度,给用户带来了很好的体验感,不在浪费用户无谓的时间去等待系统的响应。
上面图2和图3从模块化功能实体的角度对本发明实施例中的数据请求的三级响应系统进行详细描述,下面从硬件处理的角度对本发明实施例中数据请求的三级响应设备进行详细描述。
图4是本发明实施例提供的一种数据请求的三级响应设备的结构示意图,该数据请求的三级响应设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)410(例如,一个或一个以上处理器)和存储器420,一个或一个以上存储应用程序433或数据432的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器420和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据请求的三级响应设备400中的一系列指令操作。更进一步地,处理器410可以设置为与存储介质430通信,在数据请求的三级响应设备400上执行存储介质430中的一系列指令操作。
基于数据请求的三级响应设备400还可以包括一个或一个以上电源440,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口460,和/或,一个或一个以上操作系统431,例如Windows Serve,Mac OS X,Unix,Linux,Free BSD等等。本领域技术人员可以理解,图4示出的数据请求的三级响应设备结构并不构成对基于数据请求的三级响应设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据请求的三级响应方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或系统、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据请求的三级响应方法,其特征在于,所述数据请求的三级响应方法应用于数据请求的三级响应系统,所述数据请求的三级响应系统包括:openResty缓存系统、redis缓存系统、mysql存储系统,所述数据请求的三级响应方法包括:
所述openResty缓存系统接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
2.根据权利要求1所述的数据请求的三级响应方法,其特征在于,所述数据请求的三级响应系统还包括:canal监控系统,所述canal监控系统监控所述mysql存储系统的binglog日志,判断所述binglog日志是否存在变动;
若binglog日志存在变动,则读取所述binglog日志的变动数据,将所述变动数据发送至所述openResty缓存系统和所述redis缓存系统中。
3.根据权利要求2所述的数据请求的三级响应方法,其特征在于,所述mysql存储系统放置在K8S容器中,所述判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出包括:
读取所述数据访问请求的请求参数,基于预置k8s管理组件,匹配所述请求参数对应的DNS地址,得到匹配结果;
判断所述匹配结果是否为空;
若为空,则将所述数据访问请求对应的数据确定不能在mysql数据库中被查询出;
若不为空,则根据所述DNS地址,查询出所述K8S容器中的pod镜像,将所述pod镜像确定为查询出的mysql数据库。
4.根据权利要求1所述的数据请求的三级响应方法,其特征在于,所述将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应地址包括:
读取所述数据访问请求对应的redis缓存数据;
基于LUR脚本,将所述redis缓存数据存储至所述openResty缓存系统中,用于所述数据访问请求对应的发出地址从所述openResty缓存系统获取访问数据。
5.根据权利要求1所述的数据请求的三级响应方法,其特征在于,所述将所述数据访问请求对应的的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统包括:
将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据;
将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中。
6.根据权利要求5所述的数据请求的三级响应方法,其特征在于,在所述将所述数据访问请求确定为key数据,将空白数据确定为value数据,生成缓存增加数据之后,在所述将所述缓存增加数据发送至所述openResty缓存系统,以便所述openResty缓存系统添加所述缓存增加数据至所述openResty缓存数据库中之前,还包括:
对所述缓存增加数据设置过期时刻,用于防止所述openResty缓存系统的缓存超容量。
7.根据权利要求1所述的数据请求的三级响应方法,其特征在于,所述openResty缓存系统接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出包括:
所述openResty缓存系统接收数据访问请求;
分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程饱和,则将所述数据访问请求锁定,并持续分析openResty缓存数据库的处理线程是否饱和;
若openResty缓存数据库的处理线程未饱和,则判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出。
8.一种数据请求的三级响应系统,其特征在于,所述数据请求的三级响应系统包括:
openResty缓存系统、redis缓存系统、mysql存储系统;
所述openResty缓存系统,用于接收数据访问请求,判断所述数据访问请求对应的数据是否能在openResty缓存数据库中被查询出,其中,所述openResty缓存数据库设置在所述openResty缓存系统中;
若在openResty缓存数据库能查询出,则将所述数据访问请求对应的openResty缓存数据发送至所述数据访问请求对应的发出地址;
若在openResty缓存数据库未能被查询出,则发送数据访问请求至所述redis缓存系统中;
所述redis缓存系统,用于接收所述数据访问请求,判断所述数据访问请求对应的数据是否能在redis缓存数据库中被查询出,其中,所述redis缓存数据库设置在所述redis缓存系统中;
若在redis缓存数据库能被查询出,则将所述数据访问请求对应的redis缓存数据发送至所述数据访问请求对应的发出地址;
若在redis缓存数据库不能被查询出,则发送数据访问请求至所述mysql存储系统中;
所述mysql存储系统,用于接收所述数据访问请求,判断所述数据访问请求对应的mysql数据是否能在mysql数据库中被查询出,其中,所述mysql数据库设置在所述mysql存储系统中;
若在mysql数据库能查询出,则将所述数据访问请求对应的mysql数据发送至所述数据访问请求对应的发出地址;
若在mysql数据库未能查询出,则将所述数据访问请求对应的数据设置为空白数据,生成结果数据,以及将所述结果数据发送至所述openResty缓存系统。
9.一种数据请求的三级响应设备,其特征在于,所述数据请求的三级响应设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据请求的三级响应设备执行如权利要求1-7中任一项所述的数据请求的三级响应方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的数据请求的三级响应方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210204705.XA CN114610762A (zh) | 2022-03-03 | 2022-03-03 | 数据请求的三级响应方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210204705.XA CN114610762A (zh) | 2022-03-03 | 2022-03-03 | 数据请求的三级响应方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610762A true CN114610762A (zh) | 2022-06-10 |
Family
ID=81860311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210204705.XA Pending CN114610762A (zh) | 2022-03-03 | 2022-03-03 | 数据请求的三级响应方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610762A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185996A (zh) * | 2022-07-19 | 2022-10-14 | 广州凯园软件科技有限公司 | 一种基于积分制的教育培训综合考评系统 |
-
2022
- 2022-03-03 CN CN202210204705.XA patent/CN114610762A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185996A (zh) * | 2022-07-19 | 2022-10-14 | 广州凯园软件科技有限公司 | 一种基于积分制的教育培训综合考评系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109064345B (zh) | 消息处理方法、系统以及计算机可读存储介质 | |
US8554790B2 (en) | Content based load balancer | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
US8447757B1 (en) | Latency reduction techniques for partitioned processing | |
CN111858677A (zh) | 本地缓存数据访问方法、装置、设备及存储介质 | |
US20050004898A1 (en) | Distributed search methods, architectures, systems, and software | |
US8055744B2 (en) | Resolution of group membership for resources | |
CN114610762A (zh) | 数据请求的三级响应方法、系统、设备及存储介质 | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN114844771A (zh) | 微服务系统的监测方法、装置、存储介质、程序产品 | |
CN113315852B (zh) | 一种域名解析的方法、装置及系统 | |
CN103714144A (zh) | 一种信息检索装置和方法 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN117290557A (zh) | 一种数据加载方法、相关装置、设备以及可读存储介质 | |
CN113301173A (zh) | 域名更新系统及方法、消息转发方法、服务器 | |
CN113064732A (zh) | 一种分布式系统及其管理方法 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN110928911A (zh) | 审校请求处理系统、方法、装置、计算机可读存储介质 | |
Liu et al. | A high performance, scalable dns service for very large scale container cloud platforms | |
CN116049181A (zh) | 一种基于ClickHouse集群的日志处理方法及装置 | |
CN111367921A (zh) | 数据对象的刷新方法及装置 | |
CN111339170A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN115237960A (zh) | 信息推送方法、装置、存储介质以及电子设备 | |
EP3151520B1 (en) | Quarantining an internet protocol address | |
CN114520808A (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 | ||
CB02 | Change of applicant information |
Address after: 901, Building 3, Shenzhen New Generation Industrial Park, 136 Zhongkang Road, Meidu Community, Meilin Street, Futian District, Shenzhen, Guangdong 518000 Applicant after: Shenzhen Foresea Allchips Information & Technology Co.,Ltd. Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant before: SHENZHEN QIANHAI YINGZHICHENG INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |