CN112260956A - 一种基于缓存的流量削峰方法及装置 - Google Patents
一种基于缓存的流量削峰方法及装置 Download PDFInfo
- Publication number
- CN112260956A CN112260956A CN202011033939.XA CN202011033939A CN112260956A CN 112260956 A CN112260956 A CN 112260956A CN 202011033939 A CN202011033939 A CN 202011033939A CN 112260956 A CN112260956 A CN 112260956A
- Authority
- CN
- China
- Prior art keywords
- reservation
- time period
- request
- time slot
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000000872 buffer Substances 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 16
- 239000002699 waste material Substances 0.000 abstract description 4
- 230000001360 synchronised effect Effects 0.000 description 6
- 206010033799 Paralysis Diseases 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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/12—Avoiding congestion; Recovering from congestion
-
- 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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于缓存的流量削峰方法及装置,解决大量用户同时提出请求造成高并发现象,导致服务器处理用户请求不平稳、系统稳定性低、甚至宕机,同时由于服务器需要配置较大的处理资源,容易造成资源浪费的问题。方法包括:服务器基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向用户返回相应的预约列表;接收用户的时间段预约请求,并基于可预约号码的判断结果,响应时间段预约请求;根据时间段预约请求对应的时间段标识,将时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与预设的时间段一一对应;将处理完成的时间段预约请求中的数据存入数据库中。
Description
技术领域
本申请涉及流量控制领域,尤其涉及一种基于缓存的流量削峰方法及装置。
背景技术
随着互联网技术的不断发展和普及,越来越多的用户通过互联网的方式解决生活中的不便。
目前,许多用户都通过互联网的方式,提前进行号码的预约,并基于预约的号码进行现场签到,生成相应的排队号。
但是,大量用户同时访问时,使得当前时刻的用户访问请求的流量剧增并出现流量峰值,造成流量高并发的现象。而服务器无法在短时间内立刻处理所有用户的访问请求,容易造成服务器处理用户访问请求不平稳、系统部署应用稳定性低的问题,甚至导致宕机。
并且,为了保证能够应对流量的高并发现象,同时保证处理用户请求的服务质量,服务器通常会配置较大的处理资源,而在服务器处于空闲状态时,就会造成资源浪费的问题。
发明内容
本申请实施例提供一种基于缓存的流量削峰方法及装置,用以解决大量用户同时提出请求而造成的高并发现象,导致服务器处理用户请求不平稳、系统稳定性低、甚至产生宕机,同时由于服务器需要配置较大的处理资源,而容易造成资源浪费的问题。
本申请实施例提供的一种基于缓存的流量削峰方法,包括:
服务器基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向用户返回相应的预约列表;
接收用户的时间段预约请求,并基于可预约号码的判断结果,响应时间段预约请求;
根据时间段预约请求对应的时间段标识,将时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与预设的时间段一一对应;
将处理完成的时间段预约请求中的数据存入数据库中。
在一个示例中,服务器判断预设的各预约时间段内是否存在可预约号码之前,所述方法还包括:服务器确定预设的预约数据,预约数据包括预约时间段、可预约总数、预约类型;确定每个预约时间段对应的时间段标识,以及每个预约类型对应的类型标识;将预约数据存入缓存中。
在一个示例中,服务器接收用户的时间段预约请求,并基于可预约号码的判断结果,响应时间段预约请求,具体包括:服务器接收用户的时间段预约请求;若与时间段预约请求对应的时间段内存在可预约号码,则向用户发送预约明细页面,确定用户的预约信息;若与时间段预约请求对应的时间段内不存在可预约号码,则向用户发送不存在可预约号码的提示信息。
在一个示例中,服务器向用户返回相应的预约列表之后,所述方法还包括:服务器将预约列表中用户提交时间段预约请求的确定按钮设置为不可用状态。
在一个示例中,服务器将时间段预约请求存放到对应的预约缓存队列中进行处理之前,所述方法还包括:服务器确定与所述时间段预约请求对应的预约缓存队列;根据当前预约缓存队列中时间段预约请求的数量与对应的时间段的可预约总数的大小关系,判断是否将时间段预约请求存放到当前预约缓存队列中;若当前预约缓存队列中时间段预约请求的数量小于可预约总数,则将时间段预约请求存放到当前预约缓存队列中;若当前预约缓存队列中时间段预约请求的数量大于或者等于可预约总数,则向用户返回预约失败的提示信息。
在一个示例中,服务器将时间段预约请求存放到对应的预约缓存队列中进行处理,具体包括:服务器将时间段预约请求存放到对应的预约缓存队列中;根据预约缓存队列中各时间段预约请求的顺序,对时间段预约请求进行处理;修改预约缓存队列中剩余的可预约号码的数量。
在一个示例中,所述方法还包括:在预设的预约时间段终止后,服务器自动清空预设的预约时间段所对应的预约缓存队列。
在一个示例中,所述方法还包括:当时间段预约请求中的数据存入数据库失败时,服务器将时间段预约请求重新放回到对应的预约缓存队列中。
在一个示例中,所述方法还包括:服务器接收用户的签到请求;将签到请求存放到对应的签到缓存队列中进行处理;将处理完成的签到请求中的数据存入数据库中;当签到请求中的数据存入数据库失败时,服务器将签到请求重新放回到对应的签到缓存队列中。
本申请实施例提供的一种基于缓存的流量削峰装置,包括:
判断模块,用于基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向用户返回相应的预约列表;
响应模块,用于接收用户的时间段预约请求,并基于可预约号码的判断结果,响应时间段预约请求;
处理模块,用于根据时间段预约请求对应的时间段标识,将时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与的时间段一一对应;
存入模块,用于将处理完成的所述时间段预约请求中的数据存入数据库中。
本申请实施例提供一种基于缓存的流量削峰方法及装置,至少包括以下有益效果:服务器通过采用将用户的时间段预约请求与签到请求依次存放到各自的预设的缓存队列中,可以避免当前时刻因用户访问请求的流量剧增出现流量峰值,造成流量高并发的现象。同时,通过缓存的原子性特征和缓存队列的单线程处理机制,一个一个处理用户的时间段预约请求和签到请求,不会存在多个请求并发执行的情况,使得服务器能够对大量请求进行平稳处理,提高系统部署应用的稳定性、灵活性。通过将预约数据存放在预设的Redis缓存中,服务器可以根据用户的请求,直接从缓存中读取相应的数据,减少多次访问数据库的次数,避免数据库陷入瘫痪状态。服务器通过将所有用户的请求先存放到对应的缓存队列中,可以将同步的用户请求直接转换成异步的间接推送,避免当同步的用户请求放入数据库时,造成数据库拥挤、读写锁冲突、高并发、死锁的情况,降低了数据库的承受压力。服务器通过将预约数据存放在Redis缓存中,在用户请求该预约数据时,可以直接从Redis缓存中读取,从而提升服务器的每秒查询率,减少无效数据库读写操作,增强整个服务器的吞吐量。服务器还通过修改当前缓存队列对应的用户请求数量,保证了当前缓存队列中用户请求数量的正确性,同时,通过判断当前缓存队列中的请求数量与可预约总数的大小关系,避免了“超卖”现象的出现。并且,服务器通过每次将缓存队列自动清空,避免克造成资源浪费的现象。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种基于缓存的流量削峰方法流程图;
图2为本申请实施例提供的一种预约抢号流程图;
图3为本申请实施例提供的一种基于缓存的流量削峰装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种基于缓存的流量削峰方法流程图,具体包括以下步骤:
S101:服务器确定预设的预约数据。
在本申请实施例中,服务器可根据待发放的预约号码,预先设置用户可以进行预约的预约数据,将预约数据处理为Zest数据结构,并将设置好的全部预约数据存入预设的Redis缓存中。
其中,预设的Redis缓存是用于存放全部预约数据的临时数据库,Zest数据结构是预约数据在Redis缓存中的存储形式,其中包括预约时间段、可预约总数、预约类型。
预约时间段是用户可以选择预约的不同时间段,每个预约时间段的长度可以根据用户的需要设置,本申请对此不做任何限定。
同时,每个预约时间段对应唯一的时间段标识,用来更加快捷、方便的确定每个预约时间段内的预约数据的信息。
可预约总数是用户可以预约的号码的总数量。其中,每个预约时间段分别对应一个可预约总数,其可以相同,也可以不同。
预约类型是用户可以选择的预约方式,每个预约类型对应唯一的类型标识。其中,类型标识可以由字母、数字等构成。服务器可将每一个预约时间段均划分为不同的预约类型。这样可以更加方便的通过类型标识确定出所对应的预约数据的类型。
通过将预约数据存放在预设的Redis缓存中,服务器可以根据用户的请求,直接从缓存中读取相应的数据,减少多次访问数据库的次数,避免数据库陷入瘫痪状态。
如表1所示为预约数据在预设的Redis缓存中的Zest数据结构。
表1
其中,第1行表示预约数据的字段,第2~3行表示对应的字段值。KEY表示时间段标识,2020090107000800表示2020年9月1号7点到8点的预约时间段,VALUE表示类型标识,XSSYHSL表示一种预约类型的类型标识,ZSYHSL表示另一种预约类型的类型标识,SCORE表示可预约总数。
例如,在上述表1中,服务器将预约类型分为线上预约和线下预约两种类型。在7点到8点的预约时间段内,服务器根据线上预约类型的类型标识XSSYHSL,将线上预约的可预约总数设置为100个,根据线下预约类型的类型标识ZSYHSL,将线下预约的可预约总数设置为50个。。
S102:服务器基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向用户返回相应的预约列表。
在本申请实施例中,服务器先接收来自用户的查询请求。之后,服务器基于查询请求,在预先设置的Redis缓存中,根据每个时间段标识判断每个预约时间段内是否存在可预约号码,并读取可预约号码的信息。之后,服务器将可预约号码的信息以预约列表的形式返回给用户。其中,可预约号码是在相应的预约时间段内,用户可以进行预约的剩余的号码,预约列表中可包括预约时间段、提交预约请求的按钮等信息。
通过在用户进行时间段预约请求之前,服务器先根据预设的时间段标识进行可预约号码的判断,能够保证用户更加准确的进行时间段的预约。
在一个实施例中,服务器在判断预设的各预约时间段内是否存在可预约号码时,可采用标记变量,对判断结果进行标记,以对是否存在可预约号码的情况进行区分。这样可以直接通过设置的标记变量以及其取值更加方便、快捷的响应后期用户的需求。
例如,若预设的某一预约时间段内存在可预约号码,则为该预约时间段设置一个标记变量,将该标记变量的取值设置为true。若预约的某一时间段内不存在可预约号码,则为该预约时间段设置一个标记变量,将该标记变量的取值设置为false。
在一个实施例中,本申请的查询请求可以为用户使用仓库的查询请求。当存在多个仓库时,服务器可接收用户对某一仓库的查询请求,对该仓库对应的预约数据进行查询。
S103:服务器接收用户的时间段预约请求,并基于可预约号码的判断结果,响应时间段预约请求。
在本申请实施例中,服务器可以通过S102中向用户返回的预约列表,直接接收用户通过该预约列表提交的时间段预约请求。之后,服务器基于S102的可预约号码的判断结果,来确定如何响应该用户提交的时间段预约请求。
在一个实施例中,当服务器判断出预约时间段内存在可预约号码时,向该用户发送预约明细页面,确定该用户的详细预约信息。当判断出预约时间段内不存在可预约号码时,向该用户发送不存在可预约号码的提示信息,减少用户不必要的请求次数。其中,预约明细页面可以包括用户的个人信息、预约时间段等。这样可以避免系统中没有可预约号码时,持续接收到用户的无效的时间段预约请求。
在一个实施例中,服务器在确定用户的预约信息后,将提交明细页面上的确定按钮设置为不可用的状态。这样可以避免用户多次重复发送相同的预约请求,造成服务器一直处于忙碌状态。
在一个实施例中,本申请可以采用S102的标记变量的取值来判断是否响应用户的时间段预约请求。这样可以缩短服务器响应时间段预约请求的时间。
例如,若标记变量的取值为true,则预约时间段内存在可预约号码,直接给该用户发送明细页面,确定用户的详细信息。若标记变量的取值为false,则预约时间段内不存在可预约号码,给该用户发送不存在可预约号码的提示信息。
S104:服务器根据时间段预约请求对应的时间段标识,将时间段预约请求存放到对应的预约缓存队列中进行处理。
在本申请实施例中,服务器先根据用户的时间段预约请求中对应的预约时间段的时间段标识,确定与该时间段预约请求对应的预约缓存队列。之后,服务器将用户的时间段预约请求存放在对应的预约缓存队列中进行处理。
其中,预约缓存队列是用于存放一个预约时间段内所有用户提出的时间段预约请求的队列。预约缓存队列与预设的预约时间段是一一对应的关系。也就是说,每一个预约时间段都有一个与其对应的预约缓存队列。预约缓存队列的最大长度,与相应的预约时间段的可预约总数相对应。
通过将所有用户的时间段预约请求先存放到对应的可预约号码的缓存队列中,可以将同步的时间段预约请求直接转换成异步的间接推送,避免当同步的时间段预约请求放入数据库时,造成数据库拥挤、读写锁冲突、高并发、死锁的情况,降低了数据库的承受压力。
在一个实施例中,服务器还可以将每一个预约时间段内所有用户提出的时间段预约请求都存放在一个预约缓存队列中,并通过不同的时间段标识对各预约时间段的时间段预约请求进行区分。也就是说,Redis缓存中只有一个预约缓存队列,以节省空间。
在一个实施例中,服务器在将用户的时间段预约请求存放到预约缓存队列中进行处理之前,还要根据当前预约缓存队列中时间段预约请求的数量与对应的预设时间段的可预约总数的大小关系,判断是否能将该时间段预约请求存放到对应的预约缓存队列中。
若当前预约缓存队列中时间段预约请求的数量小于可预约总数,表示当前预约缓存队列对应的预约时间段还存在可预约号码,则将时间段预约请求存放到预约缓存队列中。若当前预约缓存队列中时间段预约请求的数量大于或者等于可预约总数,表示当前预约缓存队列对应的预约时间段不存在可预约号码,则向用户返回预约失败的提示信息。
这样可以避免当预约缓存队列不能再存放时,还将用户的时间段预约请求继续存放到该预约缓存队列,使该预约缓存队列产生超载的问题。
例如,某一时间段对应的预约缓存队列的可预约总数为100。若当前预约缓存队列中已存的时间段预约请求的数量为98,则当前预约缓存队列中的时间段预约请求的数量小于可预约总数,可预约号码还有剩余,当前的预约缓存队列并没有处于放满的状态,则可将接收到的时间段预约请求存放在该预约缓存队列中。若当前预约缓存队列中已存的时间段预约请求的数量为100,则当前预约缓存队列中的时间段预约请求的数量等于可预约总数,没有可预约号码,当前的预约缓存队列处于放满的状态,则不能将接收到的时间段预约请求再存放入该预约缓存队列中。
在一个实施例中,服务器将用户的时间段预约请求存在到对应的预约缓存队列中,并进行处理之后,修改当前预约缓存队列对应的预约时间段的剩余可预约号码的数量。通过及时更新剩余可预约号码的数量,可以保证能够正确响应用户的时间段预约请求,避免出现号码“超卖”的问题。
在一个实施例中,服务器当监测出预约时间段终止后,也就是预约时间段已过期,则不管该预约时间段对应的预约缓存队列处于满的状态还是不满的状态,服务器都将该预约缓存队列清空,这样可以减少不必要的预约缓存队列对内存的占用,节省内存空间,方便其他缓存队列使用。
S105:服务器将处理完成的时间段预约请求中的数据存入数据库中。
在本申请实施例中,服务器将S104处理完成的时间段预约请求中的数据持久化到数据库中。这样可以避免因为服务器出现问题,而导致预约缓存队列中的数据消失的情况。
在一个实施例中,当把某一时间段预约请求中的数据存入数据库失败之后,服务器将该时间段预约请求重新放回对应的预约缓存队列中,重新进行处理,并修改对应的预约时间段剩余的可预约号码的数量。这样可以避免因放入数据库失败后,不对该数据进行相关操作导致数据丢失的情况,同时,也可以保证用户的时间段预约请求最终能够得到处理,确保号码的准确发放。
在一个实施例中,用户在预约成功、进行签到时,服务器接收到用户的签到请求后,将该签到请求存放到对应的签到缓存队列中,确定当前签到请求的顺序。之后,服务器可将当前签到缓存队列的最大排队号加一,用于存放下一个签到请求。这样可保证把不同的签到请求存放在签到缓存队列的不同的位置,避免排队号重复的情况。
服务器将处理完的签到请求存入数据库中。这样可以将同步的签到请求直接转换成异步的间接推送,避免当同步的签到请求放入数据库时,造成数据库拥挤、读写锁冲突、高并发、死锁的情况,降低了数据库的承受压力。
其中,服务器在接收到用户的签到请求之后,还将签到请求页面上的签到按钮处于不可用状态,避免重复发送相同的签到请求。
同时,服务器当监测到签到请求中的数据存入数据库失败之后,服务器将该请求重新放回对应的签到缓存队列中,重新进行处理,并修改对应的最大排队号。这样可以避免因放入数据库失败后,不对该数据进行相关操作导致数据丢失的情况,同时,也可以保证用户的签到请求能够得到处理,确保号码的准确发放。
需要说明的是,服务器响应用户的签到请求的过程与响应用户的时间段预约请求的过程基本相同,因此,上述服务器对用户的签到请求的响应过程未详述的部分,具体可参考响应时间段预约请求的过程,对此,本申请不再做详细说明。
在本申请实施例中,服务器通过采用将用户的时间段预约请求与签到请求依次存放到各自的预设的缓存队列中,可以避免当前时刻因用户访问请求的流量剧增出现流量峰值,造成流量高并发的现象。同时,通过缓存的原子性特征和缓存队列的单线程处理机制,一个一个处理用户的时间段预约请求和签到请求,不会存在多个请求并发执行的情况,使得服务器能够对大量请求进行平稳处理,提高系统部署应用的稳定性、灵活性。
服务器通过将预约数据存放在Redis缓存中,在用户请求该预约数据时,可以直接从Redis缓存中读取,从而提升服务器的每秒查询率,减少无效数据库读写操作,增强整个服务器的吞吐量。
服务器还通过修改当前缓存队列对应的用户请求数量,保证了当前缓存队列中用户请求数量的正确性,同时,通过判断当前缓存队列中的请求数量与可预约总数的大小关系,避免了“超卖”现象的出现。并且,服务器通过每次将缓存队列自动清空,避免克造成资源浪费的现象。
图2为本申请实施例提供的预约抢号流程图,如图2所示,用户发起预约请求,服务器将多个预约请求写入预设的Redis缓存队列进行处理,若号码数大于0,表示预约缓存队列中的请求数量小于可预约总数,则将处理完的预约请求对应的号码数从缓存中扣除,并将该预约请求持久化到数据库中。若号码数小于0,表示不存在可预约号码,则向用户发送提示信息。
以上为本申请实施例提供的一种基于缓存的流量削峰方法,基于同样的发明思路,本申请实施例还提供了相应的一种基于缓存的流量削峰装置,如图3所示。
图3为本申请实施例提供的装置结构示意图,具体包括:
判断模块301,用于基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向所述用户返回相应的预约列表;
响应模块302,用于接收用户的时间段预约请求,并基于所述可预约号码的判断结果,响应所述时间段预约请求;
处理模块303,用于根据所述时间段预约请求对应的时间段标识,将所述时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与预设的时间段一一对应;
存入模块304,将处理完成的所述时间段预约请求中的数据存入数据库中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于缓存的流量削峰方法,其特征在于,包括:
服务器基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向所述用户返回相应的预约列表;
接收用户的时间段预约请求,并基于所述可预约号码的判断结果,响应所述时间段预约请求;
根据所述时间段预约请求对应的时间段标识,将所述时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与预设的时间段一一对应;
将处理完成的所述时间段预约请求中的数据存入数据库中。
2.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,判断预设的各预约时间段内是否存在可预约号码之前,所述方法还包括:
服务器确定预设的预约数据,所述预约数据包括预约时间段、可预约总数、预约类型;
确定每个所述预约时间段对应的时间段标识,以及每个所述预约类型对应的类型标识;
将所述预约数据存入缓存中。
3.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,接收用户的时间段预约请求,并基于所述可预约号码的判断结果,响应所述时间段预约请求,具体包括:
服务器接收用户的时间段预约请求;
若与所述时间段预约请求对应的时间段内存在可预约号码,则向所述用户发送预约明细页面,确定所述用户的预约信息;
若与所述时间段预约请求对应的时间段内不存在可预约号码,则向所述用户发送不存在可预约号码的提示信息。
4.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,向所述用户返回相应的预约列表之后,所述方法还包括:
服务器将所述预约列表中用户提交时间段预约请求的确定按钮设置为不可用状态。
5.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,将所述时间段预约请求存放到对应的预约缓存队列中进行处理之前,所述方法还包括:
服务器确定与所述时间段预约请求对应的预约缓存队列;
根据当前预约缓存队列中时间段预约请求的数量与对应的时间段的可预约总数的大小关系,判断是否将所述时间段预约请求存放到所述当前预约缓存队列中;
若所述当前预约缓存队列中时间段预约请求的数量小于所述可预约总数,则将所述时间段预约请求存放到所述当前预约缓存队列中;
若所述当前预约缓存队列中时间段预约请求的数量大于或者等于所述可预约总数,则向所述用户返回预约失败的提示信息。
6.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,将所述时间段预约请求存放到对应的预约缓存队列中进行处理,具体包括:
服务器将所述时间段预约请求存放到对应的预约缓存队列中;
根据所述预约缓存队列中各时间段预约请求的顺序,对所述时间段预约请求进行处理;
修改相应预约时间段对应的剩余的可预约号码的数量。
7.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,所述方法还包括:
在所述预约时间段终止后,服务器自动清空所述预约时间段对应的预约缓存队列。
8.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,所述方法还包括:
当时间段预约请求中的数据存入数据库失败时,服务器将所述时间段预约请求重新放回到对应的预约缓存队列中。
9.根据权利要求1所述的一种基于缓存的流量削峰方法,其特征在于,所述方法还包括:
服务器接收用户的签到请求;
将所述签到请求存放到对应的签到缓存队列中进行处理;
将处理完成的所述签到请求中的数据存入数据库中;
当所述签到请求中的数据存入数据库失败时,服务器将所述签到请求重新放回到对应的签到缓存队列中。
10.一种基于缓存的流量削峰装置,其特征在于,包括:
判断模块,用于基于用户的查询请求,在预设的缓存中,根据预设的时间段标识,判断预设的各预约时间段内是否存在可预约号码,并向所述用户返回相应的预约列表;
响应模块,用于接收用户的时间段预约请求,并基于所述可预约号码的判断结果,响应所述时间段预约请求;
处理模块,用于根据所述时间段预约请求对应的时间段标识,将所述时间段预约请求存放到对应的预约缓存队列中进行处理,其中,预约缓存队列与预设的时间段一一对应;
存入模块,用于将处理完成的所述时间段预约请求中的数据存入数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033939.XA CN112260956A (zh) | 2020-09-27 | 2020-09-27 | 一种基于缓存的流量削峰方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033939.XA CN112260956A (zh) | 2020-09-27 | 2020-09-27 | 一种基于缓存的流量削峰方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112260956A true CN112260956A (zh) | 2021-01-22 |
Family
ID=74234373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011033939.XA Pending CN112260956A (zh) | 2020-09-27 | 2020-09-27 | 一种基于缓存的流量削峰方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112260956A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117196079A (zh) * | 2023-11-07 | 2023-12-08 | 北京赢科天地电子有限公司 | 一种基于数据关系的师生网上预约方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864169A (zh) * | 2003-08-06 | 2006-11-15 | 城市旅行康姆公司 | 存储并从存储高速缓存中检索产品可获性信息的系统、方法以及计算机程序产品 |
JP2008159081A (ja) * | 2008-02-21 | 2008-07-10 | Nec Corp | キューイング装置、キュー処理方法、およびキュー処理プログラム |
CN106469330A (zh) * | 2016-09-06 | 2017-03-01 | 北京三快在线科技有限公司 | 信息查找方法、信息存储方法及装置 |
US20180357574A1 (en) * | 2017-06-09 | 2018-12-13 | Amadeus S.A.S. | Maximal availability inventory |
CN110472759A (zh) * | 2019-08-20 | 2019-11-19 | 大湖科技(北京)有限公司 | 工位管理方法、工位管理装置和计算机可读存储介质 |
CN111626458A (zh) * | 2020-06-03 | 2020-09-04 | 中国银行股份有限公司 | 用户预约请求的处理方法、装置和相关设备 |
-
2020
- 2020-09-27 CN CN202011033939.XA patent/CN112260956A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864169A (zh) * | 2003-08-06 | 2006-11-15 | 城市旅行康姆公司 | 存储并从存储高速缓存中检索产品可获性信息的系统、方法以及计算机程序产品 |
JP2008159081A (ja) * | 2008-02-21 | 2008-07-10 | Nec Corp | キューイング装置、キュー処理方法、およびキュー処理プログラム |
CN106469330A (zh) * | 2016-09-06 | 2017-03-01 | 北京三快在线科技有限公司 | 信息查找方法、信息存储方法及装置 |
US20180357574A1 (en) * | 2017-06-09 | 2018-12-13 | Amadeus S.A.S. | Maximal availability inventory |
CN110472759A (zh) * | 2019-08-20 | 2019-11-19 | 大湖科技(北京)有限公司 | 工位管理方法、工位管理装置和计算机可读存储介质 |
CN111626458A (zh) * | 2020-06-03 | 2020-09-04 | 中国银行股份有限公司 | 用户预约请求的处理方法、装置和相关设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117196079A (zh) * | 2023-11-07 | 2023-12-08 | 北京赢科天地电子有限公司 | 一种基于数据关系的师生网上预约方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6678802B2 (en) | Method and apparatus for controlling access by a plurality of concurrently operating processes to a resource | |
US7016909B2 (en) | Method and system for expansion of recurring calendar events | |
US5526524A (en) | Method and system for management of locked objects in a computer supported cooperative work environment | |
US5797005A (en) | Shared queue structure for data integrity | |
US5991793A (en) | Resource allocation method in computer system | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN101146127B (zh) | 一种分布式系统中客户端缓存更新的方法和装置 | |
US5551023A (en) | System of database concurrency control based on transaction types and prior access to a data set | |
CN102449602A (zh) | 用于降低软件应用的启动成本的系统和方法 | |
CN102426542A (zh) | 数据中心资源管理系统及作业调度方法 | |
US6253274B1 (en) | Apparatus for a high performance locking facility | |
CN112260956A (zh) | 一种基于缓存的流量削峰方法及装置 | |
CN112148480A (zh) | 基于多线程的任务处理方法、装置、设备及存储介质 | |
CN1776723B (zh) | 在发布预订数据处理系统中发布各文档的方法及设备 | |
CN111177032A (zh) | 缓存空间申请方法、系统、装置及计算机可读存储介质 | |
CN111282263A (zh) | 事件消息的处理方法、装置、电子设备及可读存储介质 | |
CN113254223A (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
CN111930528A (zh) | 消息中间件的消息写入方法、装置、设备及可读存储介质 | |
JP2001229058A (ja) | データベースサーバ処理方法 | |
CN101017450A (zh) | 管理资源请求的设备、系统和方法 | |
CN112882812B (zh) | 延时任务调度与存储方法、装置、设备、介质及系统 | |
JPH09222986A (ja) | 画像処理装置及び情報処理装置 | |
CN110515743B (zh) | 写事件通知方法及装置 | |
US5511220A (en) | Multi-user computer system with a clock driven batch dispatching mechanism | |
CN113495896A (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 |