CN108600363A - 基于Redis的Web Service申请外部服务的方法与系统 - Google Patents

基于Redis的Web Service申请外部服务的方法与系统 Download PDF

Info

Publication number
CN108600363A
CN108600363A CN201810359151.4A CN201810359151A CN108600363A CN 108600363 A CN108600363 A CN 108600363A CN 201810359151 A CN201810359151 A CN 201810359151A CN 108600363 A CN108600363 A CN 108600363A
Authority
CN
China
Prior art keywords
redis
buffer queues
length
redis buffer
service
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.)
Granted
Application number
CN201810359151.4A
Other languages
English (en)
Other versions
CN108600363B (zh
Inventor
张骞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Greenet Information Service Co Ltd
Original Assignee
Wuhan Greenet Information Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Greenet Information Service Co Ltd filed Critical Wuhan Greenet Information Service Co Ltd
Priority to CN201810359151.4A priority Critical patent/CN108600363B/zh
Publication of CN108600363A publication Critical patent/CN108600363A/zh
Application granted granted Critical
Publication of CN108600363B publication Critical patent/CN108600363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Abstract

本发明公开了一种基于Redis的Web Service申请外部服务的方法,包括:前端向后端服务器发送外部服务请求,返回并设定服务响应查询时间;后端服务器判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;外部服务单元判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述外部服务请求,并将服务响应结果添加到所述Redis缓存队列末尾;到达所述服务响应查询时间时,所述前端发送查询请求,判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。本发明可以实现本地web服务器与外部服务部件的交互,实现方式简单,对于简单的外部服务交互更加适用。

Description

基于Redis的Web Service申请外部服务的方法与系统
技术领域
本发明属于计算机技术领域,更具体地,涉及一种基于Redis的WebService申请外部服务的方法与系统。
背景技术
Web Service是一个平台独立的、低耦合的、自包含的、基于可编程Web的应用程序,可使用开放的可扩展标记语言(eXtensible Markup Language,XML)标准来描述、发布、发现、协调和配置这些应用程序,以用于开发分布式的互操作的应用程序。Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。Web Service是自描述、自包含的可用网络模块,可以执行具体的业务功能。Web Service也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP(Hyper TextTransfer Protocol,超文本传输协议),Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
Web 2.0时代的平台设计,出现后端提供多种服务的特征,服务已经不仅仅局限于由后端服务器的功能组件提供,还需要从外部组件请求服务。这就需要一个API(Application Programming Interface,应用程序编程接口),完成本地Service和这些外部组件的交互。最常用的方式是采用REST(Representational State Transfer)和RPC(Remote Procedure Call,远程过程调用)方法,其中REST一般采用post/get,远端需要建立Http Service以实现应答通信。而现有的RPC方案,则需要搭建复杂的框架,复杂度高,一般适合大企业或复杂业务使用。因此,对于轻量型Web Service运用场景,有必要提供一种简易的Service远程调用服务方案。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于Redis的WebService申请外部服务的方法,其目的在于针对轻量型Web service的运用场景,提供一种基于非阻塞的简易的service远程调用服务方案,由此解决现有技术中Web平台获取外部服务部署复杂的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于Redis的Web Service申请外部服务的方法,包括:
前端向后端服务器发送外部服务请求,返回并设定服务响应查询时间;
后端服务器接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
外部服务单元判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
到达所述服务响应查询时间时,所述前端发送查询请求,驱动后端服务器定期监视所述Redis缓存队列,判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
本发明实施例所提供的方法,通过Redis缓存队列的长度来判断队列当前所处的时序状态,确定队列中的元素是服务请求还是服务响应,从而通过队列长度来实现服务请求的添加和读取、服务响应的添加和查询,能够简便的实现Web Service申请外部服务;另外前端通过定时查询服务响应,可及时的实现响应结果的查询,并且减小通信开销;并且本发明通过Redis缓存队列来存储并维护服务请求和响应,在实现时只需额外部署redis并提供本发明方法的相应接口即可实现,从而实现本地Web服务器与外部服务元件的交互,实现方式简单,对于简单的外部服务交互更加适用。本发明通过前端定时查询数据库获得服务响应结果,从而可以实现在不刷新页面的情况下由前端主动获取应答。
本发明的一个实施例中,当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序;或者,
当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
本发明实施例中,将后端服务器和外部服务单元应答索引奇偶固定,既可保证序列,又可通过奇偶数迅速判定是否有请求或者应答。
本发明的一个实施例中,当后端服务器接收前端发送的外部服务请求时,如果不存在对应的Redis缓存队列,则建立对应的Redis缓存队列并设置所述Redis缓存队列的生命周期。
本发明实施例中,利用有生命周期的Redis缓存队列作实现信令交互,实现内存有效回收,降低维护成本。
本发明的一个实施例中,当到达所述服务响应查询时间且所述Redis缓存队列的长度不对应响应读取时序时,则所述前端返回并设定下一次服务响应查询时间。
本发明实施例中,通过前端定时查询服务响应,并且该查询周期可根据实际情况灵活设定,从而可以保证响应的及时性,并且能在服务响应未返回时继续定时进行下一次查询。
本发明的一个实施例中,当到达所述服务响应查询时间且所述Redis缓存队列过期已删除时,则所述前端返回请求失败消息。
本发明实施例中,利用有生命周期的Redis缓存队列作实现信令交互,实现内存有效回收,以降低维护成本。那么Redis缓存队列在到达生命周期后会删除,此时前端查询不到相应对列时则返回请求失败消息。可以由前端再次发起下一次服务请求。
本发明的一个实施例中,所述Redis缓存队列的键值与所述前端和/或所述外部服务请求对应。
本发明实施例中,如果只有一个后端服务器和一个外部服务单元,则只需一个Redis缓存队列对应该后端服务器和该外部服务单元之间的服务请求与响应。如果存在多个多个后端服务器和多个外部服务单元,则可能存在多个Redis缓存队列对应不同的后端服务器和不同外部服务单元之间的服务请求与响应。此时,需要通过键值来对应不同的后端服务器和该外部服务单元,以实现服务请求的添加和读取、服务响应的添加和查询与队列的对应,保证服务的准确性。
本发明的一个实施例中,所述前端采用Ajax发送外部服务请求并设定服务响应查询时间。
本发明实施例中,基于Ajax嵌套实现定时轮询,可以在无需重新加载整个网页的情况下,更新部分网页的数据,通过在后台与服务器进行少量数据交换,使网页实现异步更新,减少了通信开销。
本发明的一个实施例中,当到达所述Redis缓存队列的生命周期时,删除所述Redis缓存队列。
本发明实施例中,利用有生命周期的Redis缓存队列作实现信令交互,在Redis缓存队列到达生命周期时,删除队列,实现内存有效回收,降低维护成本。
按照本发明的另一方面,提供了一种基于Redis的Web Service申请外部服务的系统,包括后端服务器、Redis数据库和外部服务单元,其中:
所述后端服务器,用于接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
所述Redis数据库,用于建立并维护所述Redis缓存队列;
所述外部服务单元,用于判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
所述后端服务器,还用于在到达服务响应查询时间时判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
本发明实施例所提供的系统,通过Redis缓存队列的长度来判断队列当前所处的时序状态,从而确定队列中的元素是服务请求还是服务响应,从而通过队列长度来实现服务请求的添加和读取、服务响应的添加和查询,从而简便的实现了Web Service申请外部服务;另外前端通过定时查询服务响应,可及时的实现响应结果的查询,并且减小通信开销;并且本发明通过Redis缓存队列来存储并维护服务请求和响应,只需额外部署redis并提供本发明方法的相应接口即可实现,从而实现本地Web服务器与外部服务元件的交互,实现方式简单,对于简单的外部服务交互更加适用。
本发明的一个实施例中,当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序;或者,
当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
本发明实施例中,将后端服务器和外部服务单元应答索引奇偶固定,既可保证序列,又可通过奇偶数迅速判定是否有请求或者应答。巧妙地利用了列队的长度来确认队列元素。
附图说明
图1是本发明实施例中基于Redis的Web Service申请外部服务的实施场景示意图;
图2是本发明实施例中基于Redis的Web Service申请外部服务的方法的流程示意图;
图3是本发明实施例中服务请求发起流程示意图;
图4是本发明实施例中服务请求响应流程示意图;
图5是本发明实施例中多个Redis缓存队列的键值对应示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Ajax即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax是一种用于创建快速动态网页的技术,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
前端,一般对应我们写的html、javascript等网页语言,作用在前端网页。后端,一般对应jsp、javaBean、dao层、action层和service层的业务逻辑代码。
后端服务器,本发明中是指Web Server,中文名称叫网页服务器或Web服务器。WEB服务器也称为WWW(World Wide Web)服务器,主要功能是提供网上信息浏览服务。
Web平台获取外部服务的接口方法。常用的方法是REST和RPC,RPC部署较为复杂,而REST模式消息耦合性较弱。本发明利用Redis数据库的特性,将Redis作为信令缓存,以实现接口功能。Redis采用kv结构,交互简单,且是内存存储,响应快设置简单。本发明的使用只需额外部署Redis数据库,根据本发明方法所设计的接口方法,即可实现。特点是实现本地Web服务器与外部服务单元的交互,实现方式简单,对于简单的外部服务交互更加适用。
实施例1
如图1所示,为本发明实施例中技术方案的实施场景,前端(例如浏览器)通过后端服务器(Web服务器)请求外部服务,在后端服务器与外部服务单元之间部署有Redis数据库,所述Redis数据库用于建立和维护Redis缓存队列,一个Redis缓存队列对应一个后端服务器与外部服务单元之间的服务请求与服务响应。Redis缓存队列中存储有服务请求和服务响应,服务请求与服务响应奇偶排列,从而通过队列长度即可判断队列中的元素是服务请求还是服务响应。
实施例2
如图2所示,本发明实施例提供了一种基于Redis的Web Service申请外部服务的方法,包括:
S1、前端向后端服务器发送外部服务请求,返回并设定服务响应查询时间;
当用户需要请求外部服务单元的服务时,可以通过前端(例如Web浏览器)利用Ajax向后端服务器发送服务请求,当发出服务请求后可以返回(一般是立即返回)并定时,即设定服务响应查询时间,当到达设定服务响应查询时间时,前端再利用Ajax向后端服务器发送查询请求,以驱动后端服务器查询并返回服务响应结果。
S2、后端服务器接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
当后端服务器接收前端发送的外部服务请求时,即查询Redis数据库,判断Redis数据库中是否包含有对应的Redis缓存队列,如果没有则建立相应的Redis缓存队列,如果有则根据Redis缓存队列的长度判断该队列当前处于什么状态。具体地,本发明中利用Redis缓存队列的长度的奇偶来判断Redis缓存队列当前处于什么状态。
在此先对本发明中定义的几个时序进行说明:请求添加时序、请求读取时序以及响应读取时序。当队列状态处于请求添加时序(例如奇数)时,表明此时队列最后一个元素为服务响应元素,此时可在队列结尾添加新的服务请求;当添加了新的服务请求后队列的长度加一(变为偶数),此时队列状态变为请求读取时序,即此时队列最后一个元素为服务请求元素,此时外部服务单元可读取队列末尾元素即服务请求元素;外部服务单元读取服务请求后,返回服务响应结果并在队列结尾添加服务响应结果,此时队列的长度再加一(变为奇数),此时队列状态变为响应读取时序,即队列最后一个元素为服务响应元素,此时前端可读取队列末尾元素(即服务响应结果)。至此一个服务请求和响应过程结束,队列又处于请求添加时序了,队列又可以接收新的服务请求。
例如以本发明图3和图4为例,图中req表示服务请求,res表示服务响应。可以定义为:当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
当然也可以定义为:当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序。当然进一步地,还可以对Redis缓存队列的时序状态进行其他定义。只要能区分出对应的队列状态即可,例如可以通过求取整除余数的方式来确定队列元素。
进一步地,如果在后端服务器接收前端发送的外部服务请求时,如果不存在对应的Redis缓存队列,则需要建立对应的Redis缓存队列并设置所述Redis缓存队列的生命周期。
本发明实施例中,利用Redis的内存管理方式来管理Redis缓存队列的生命周期,从而实现内存有效回收,降低维护成本。即在建立Redis缓存队列时就设置其生命周期,并生命周期到达后则删除该Redis缓存队列。
具体地,在建立Redis缓存队列时,需要设置所述Redis缓存队列的键值与所述前端和/或所述外部服务请求对应。后端服务器在添加服务请求到队列和查询服务响应结果,外部服务单元在读取服务请求和添加服务响应结果时,均需要根据键值来查找对应的Redis缓存队列。
例如,如果只有一个后端服务器和一个外部服务单元,则只需一个Redis缓存队列对应该后端服务器和该外部服务单元之间的服务请求与响应。而如图5所示,如果存在多个多个后端服务器(例如图中为2)和多个外部服务单元(例如图中为3),则可能存在多个Redis缓存队列(例如最多可为6个)对应不同的后端服务器和不同外部服务单元之间的服务请求与响应。
例如在图5中,可能存在最多6个Redis缓存队列,可将6个Redis缓存队列的键值分别设置为A1-B1、A2-B1、A1-B2、A2-B2、A1-B3和A2-B3,从而对应A1、A2与B1、B2、B3之间的服务请求与响应通路。如果A1后端服务器需要向B2外部服务单元请求服务,则向队列A1-B2中写入服务,B2外部服务单元从队列A1-B2中读取请求后将响应结果写入队列A1-B2。
S3、外部服务单元判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
S4、到达所述服务响应查询时间时,所述前端发送查询请求,驱动后端服务器定期监视所述Redis缓存队列,判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
实施例3
下面以队列中奇数元素表示服务请求,偶数元素表示服务响应为例,说明本发明方法的请求发起和结果响应流程。
如图3所示,为本发明实施例中服务请求发起流程示意图,前端发送服务请求,返回并设定定时;后端服务器收到服务请求后,向缓存队列增加服务请求,如果队列长度为偶数则添加,如果为奇数则不添加。例如图中队列长度为2(偶数),此时可添加服务请求req,添加后队列长度变为3(奇数),此时外部服务单元读取服务请求req。
如图4所示,为本发明实施例中服务请求响应流程示意图,外部服务单元读取服务请求req后,根据服务请求在队列末端添加服务应答res,此时队列长度变为4(偶数);当定时到达时,前端向后端服务器发送查询,后端服务器查看缓存队列,此时队列长度为4(偶数),读取队列末尾元素并返回服务响应结果;如果此时队列长度仍为3(奇数),则表示服务尚未响应,返回定时指示;前端接收服务响应结果,并可进行下一次服务请求,如果返回的是定时指示,则设定下一次定时等待服务响应结果。
进一步地,在本发明实施例中,如果Redis缓存队列到达生命周期过期时,则会删除该Redis缓存队列。此时如果前端来查询服务响应结果,则无法查询到对应的Redis缓存队列,则返回请求失败消息,并不再设定定时查询。
实施例4
本发明还提供了一种基于Redis的Web Service申请外部服务的系统,包括后端服务器、Redis数据库和外部服务单元,其中:
所述后端服务器,用于接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
所述Redis数据库,用于建立并维护所述Redis缓存队列;
所述外部服务单元,用于判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
所述后端服务器,还用于在到达服务响应查询时间时判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
进一步地,当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序;或者,
当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Redis的Web Service申请外部服务的方法,其特征在于,包括:
前端向后端服务器发送外部服务请求,返回并设定服务响应查询时间;
后端服务器接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
外部服务单元判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
到达所述服务响应查询时间时,所述前端发送查询请求,驱动后端服务器定期监视所述Redis缓存队列,判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
2.如权利要求1所述的基于Redis的Web Service申请外部服务的方法,其特征在于:
当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序;或者,
当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
3.如权利要求1或2所述的基于Redis的Web Service申请外部服务的方法,其特征在于,当后端服务器接收前端发送的外部服务请求时,如果不存在对应的Redis缓存队列,则建立对应的Redis缓存队列并设置所述Redis缓存队列的生命周期。
4.如权利要求1所述的基于Redis的Web Service申请外部服务的方法,其特征在于,当到达所述服务响应查询时间且所述Redis缓存队列的长度不对应响应读取时序时,则所述前端返回并设定下一次服务响应查询时间。
5.如权利要求1或4所述的基于Redis的Web Service申请外部服务的方法,其特征在于,当到达所述服务响应查询时间且所述Redis缓存队列过期已删除时,则所述前端返回请求失败消息。
6.如权利要求3所述的基于Redis的Web Service申请外部服务的方法,其特征在于,所述Redis缓存队列的键值与所述前端和/或所述外部服务请求对应。
7.如权利要求1或2所述的基于Redis的Web Service申请外部服务的方法,其特征在于,所述前端采用Ajax发送外部服务请求并设定服务响应查询时间。
8.如权利要求1或2所述的基于Redis的Web Service申请外部服务的方法,其特征在于,当到达所述Redis缓存队列的生命周期时,删除所述Redis缓存队列。
9.一种基于Redis的Web Service申请外部服务的系统,其特征在于,包括后端服务器、Redis数据库和外部服务单元,其中:
所述后端服务器,用于接收前端发送的外部服务请求,并判断对应的Redis缓存队列的长度是否对应请求添加时序,如果是则将所述外部服务请求添加到所述Redis缓存队列结尾;
所述Redis数据库,用于建立并维护所述Redis缓存队列;
所述外部服务单元,用于判断所述Redis缓存队列的长度是否对应请求读取时序,如果是则读取所述Redis缓存队列末尾的外部服务请求,并将该外部服务请求的服务响应结果添加到所述Redis缓存队列末尾;
所述后端服务器,还用于在到达服务响应查询时间时判断所述Redis缓存队列的长度是否对应响应读取时序,如果是则读取所述Redis缓存队列末尾的服务响应结果。
10.如权利要求9所述的基于Redis的Web Service申请外部服务的系统,其特征在于:
当所述Redis缓存队列的长度为奇数时对应请求添加时序,当所述Redis缓存队列的长度为偶数时对应请求读取时序,当所述Redis缓存队列的长度为奇数时对应响应读取时序;或者,
当所述Redis缓存队列的长度为偶数时对应请求添加时序,当所述Redis缓存队列的长度为奇数时对应请求读取时序,当所述Redis缓存队列的长度为偶数时对应响应读取时序。
CN201810359151.4A 2018-04-20 2018-04-20 基于Redis的Web Service申请外部服务的方法与系统 Active CN108600363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810359151.4A CN108600363B (zh) 2018-04-20 2018-04-20 基于Redis的Web Service申请外部服务的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810359151.4A CN108600363B (zh) 2018-04-20 2018-04-20 基于Redis的Web Service申请外部服务的方法与系统

Publications (2)

Publication Number Publication Date
CN108600363A true CN108600363A (zh) 2018-09-28
CN108600363B CN108600363B (zh) 2020-11-17

Family

ID=63614200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810359151.4A Active CN108600363B (zh) 2018-04-20 2018-04-20 基于Redis的Web Service申请外部服务的方法与系统

Country Status (1)

Country Link
CN (1) CN108600363B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102394931A (zh) * 2011-11-04 2012-03-28 北京邮电大学 一种基于云的用户访问请求调度方法
US8185676B2 (en) * 2008-12-15 2012-05-22 International Business Machines Corporation Transitions between ordered and ad hoc I/O request queueing
CN105247489A (zh) * 2013-04-29 2016-01-13 Netapp股份有限公司 用于保护信息使能的存储卷的后台初始化
US20170109203A1 (en) * 2015-10-15 2017-04-20 International Business Machines Corporation Task scheduling
CN107342968A (zh) * 2016-05-03 2017-11-10 阿里巴巴集团控股有限公司 网页服务器的攻击检测方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185676B2 (en) * 2008-12-15 2012-05-22 International Business Machines Corporation Transitions between ordered and ad hoc I/O request queueing
CN102394931A (zh) * 2011-11-04 2012-03-28 北京邮电大学 一种基于云的用户访问请求调度方法
CN105247489A (zh) * 2013-04-29 2016-01-13 Netapp股份有限公司 用于保护信息使能的存储卷的后台初始化
US20170109203A1 (en) * 2015-10-15 2017-04-20 International Business Machines Corporation Task scheduling
CN107342968A (zh) * 2016-05-03 2017-11-10 阿里巴巴集团控股有限公司 网页服务器的攻击检测方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘宏志: ""动态优先级服务请求队列管理模型性能分析"", 《科技成果管理与研究》 *

Also Published As

Publication number Publication date
CN108600363B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
US11520770B2 (en) System and method for providing high availability data
US6918013B2 (en) System and method for flushing bean cache
CN101853265B (zh) 基于内容更新频率对缓存的数据进行刷新的系统和方法
US20120239620A1 (en) Method and system for synchronization mechanism on multi-server reservation system
CN100511220C (zh) 分布式高速缓存中维护数据的方法和系统
US6535868B1 (en) Method and apparatus for managing metadata in a database management system
CN103765423B (zh) 收集与本地存储的数据文件相关联的事务数据
CN100410930C (zh) 提供数据项的可用版本
CN1531303B (zh) 协议无关的客户端高速缓存系统和方法
EP0814590A2 (en) Preventing conflicts in distributed systems
CN100403315C (zh) 一种实现负荷分担的数据库访问方法及系统
JPH10187639A (ja) 高可用性コンピュータ・サーバ・システム
CN105354328B (zh) 一种解决NoSQL数据库并发访问冲突的系统及方法
CN110191168A (zh) 在线业务数据的处理方法、装置、计算机设备和存储介质
CN101765096A (zh) 定购关系查询方法、装置和系统
CN106354732B (zh) 一种支持并发协同的离线数据版本冲突解决方法
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN112698792B (zh) 分布式存储系统的数据迁移方法、装置及电子设备
CN110968563B (zh) 一种数据存储方法、元数据服务器及客户端
CN102938788A (zh) 事件的处理方法和装置
US6480887B1 (en) Method of retaining and managing currently displayed content information in web server
CN102959529A (zh) 用于缓存的网络的广播协议
CN113065953A (zh) 一种基于分布式的期货中继交易系统
CN108600363A (zh) 基于Redis的Web Service申请外部服务的方法与系统
US7143244B2 (en) System and method for invalidating data in a hierarchy of caches

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