CN107635010A - 流量调度方法、装置、计算机可读存储介质及电子设备 - Google Patents
流量调度方法、装置、计算机可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN107635010A CN107635010A CN201710953261.9A CN201710953261A CN107635010A CN 107635010 A CN107635010 A CN 107635010A CN 201710953261 A CN201710953261 A CN 201710953261A CN 107635010 A CN107635010 A CN 107635010A
- Authority
- CN
- China
- Prior art keywords
- computer room
- flow
- user
- computer
- client
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000002159 abnormal effect Effects 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 235000014510 cooky Nutrition 0.000 description 18
- 230000008859 change Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的实施方式提供了一种流量调度方法、流量调度装置、计算机可读存储介质及电子设备,涉及大数据技术领域,该方法包括:根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;在检测到所述机房后端的应用状态出现异常情况时,通过前端入口对所述机房的流量进行自动调度。该方法提高了流量调度的效率。
Description
技术领域
本发明的实施方式涉及大数据技术领域,更具体地,本发明的实施方式涉及流量调度方法、流量调度装置、计算机可读存储介质及电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着大数据的发展,在进行金融服务、电商平台、或者是游戏应用等用户基数大、可用性要求高的网站部署时,一般会被要求做多机房的部署,以避免单机房出现故障影响网络可靠性的问题。
相关技术中,在进行多机房部署时,由于多机房之间专线带宽有限,为了节省成本经常只保障例如数据库同步、核心缓存***同步等核心数据传输的过程,其他的数据尽量本地机房就地处理解决。业务方面就会在多个机房部署多个网站入口,然后通过DNS(Domain Name System,域名***)中的view机制对用户来源做深度识别分析,进而决定哪些用户来源访问哪个机房入口。
发明内容
在现有方案中,依赖DNS解析***对用户来源进行识别,而DNS解析***的变更生效都是非常缓慢的,因此影响了机房间的流量切换效率,并且流量切换效率较低可能导致快速扩容切换时,机房暂时不可用变更的情况,用户体验较差;一方面,用户具体访问的机房入口依赖DNS解析变化,对于相关技术中的很多没有做跨机房的登录状态同步的***而言,无法解决客户端的网络从数据切换至WiFi时机房入口的变化,从而导致用户的登录状态丢失,可靠性较差。因此在现有技术中,快速高效地进行跨机房流量调度是非常令人烦恼的过程。
为此,非常需要一种改进的流量调度方法,以使得能够高效、可靠地对不同机房之间的流量进行调度。
在本上下文中,本发明的实施方式期望提供一种流量调度方法、流量调度装置、计算机可读存储介质及电子设备。
在本发明实施方式的第一方面中,提供了一种流量调度方法,包括:
根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;
在检测到所述机房后端的应用状态出现异常情况时,通过前端入口对所述机房的流量进行自动调度。
在本发明的一个实施例中,对所述机房的流量进行自动调度包括:
根据所述用户请求中的所述字段标识对所述机房的流量进行调度。
在本发明的又一个实施例中,对所述机房对应的流量进行自动调度还包括:
根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度包括:
在第一机房后端的应用状态出现异常情况时,只保留所述第一机房的所述前端入口;
在所述客户端访问到所述第一机房的所述前端入口时,忽略所述客户端的所述字段标识中的流量调度信息并将所述流量导入第二机房;
所述第二机房的所述前端入口停止将所述流量调度到所述第一机房的后端。
在本发明的一个实施例中,根据所述用户请求中的字段标识对所述机房的流量进行调度包括:
根据所述用户请求中的所述字段标识与各所述机房后端应用集群之间的映射关系,对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,确定所述客户端首次访问的所述机房包括:
通过DNS解析所述用户请求,并根据所述用户请求返回值中的属性字段确定所述客户端首次访问的所述机房。
在本发明的一个实施例中,所述字段标识通过网站页面JavaScript设置或应用程序后台设置。
在本发明实施方式的第二方面中,提供一种流量调度装置,包括:
流量识别模块,用于根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
请求发送模块,用于解析所述客户端的所有所述用户请求中的预设字段,并将各所述用户请求动态发送至不同的机房后端;
自动调度模块,用于在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
在本发明的一个实施例中,所述自动调度模块包括:
第一调度模块,用于根据所述用户请求中的所述字段标识对所述机房的流量进行调度。
在本发明的又一个实施例中,所述自动调度模块还包括:
第二调度模块,用于根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,所述第二调度模块包括:
入口保留模块,用于在第一机房后端的应用状态出现异常情况时,只保留所述第一机房的所述前端入口;
第二调度控制模块,用于在所述客户端访问到所述第一机房的所述前端入口时,忽略所述客户端的所述字段标识中的流量调度信息并将所述流量导入第二机房;
调度停止模块,用于所述第二机房的所述前端入口停止将所述流量调度到所述第一机房的后端。
在本发明的一个实施例中,所述第一调度模块包括:
第一调度控制模块,用于根据所述用户请求中的所述字段标识与各所述机房后端应用集群之间的映射关系,对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,所述流量识别模块包括:
流量解析模块,用于通过DNS解析所述用户请求,并根据所述用户请求返回值中的属性字段确定所述客户端首次访问的所述机房。
在本发明的一个实施例中,所述字段标识通过网站页面JavaScript设置或应用程序后台设置。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据上述第一方面的流量调度方法。
在本发明实施方式的第四方面中,提供了一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的流量调度方法。
根据本发明实施方式的流量调度方法和流量调度装置,首先根据多个机房的字段标识确定所述客户端首次访问的所述机房;解析所述客户端的所有所述用户请求中的预设字段,并将各所述用户请求动态发送至不同的机房后端;在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。一方面,通过根据多个机房的字段标识确定所述客户端首次访问的所述机房,避免了相关技术中依赖域名解析进行流量识别,进而提高了流量切换效率;另一方面,在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度,解决了机房入口发生变化时导致用户流量丢失的问题,实现了跨机房的状态保持,确保了业务的连续性,提高了可靠性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性示出了根据本发明实施方式的一个示例性应用场景的框架示意图;
图2示意性示出了根据本发明一实施例的流量调度方法的流程图;
图3示意性示出了根据本发明一实施例的流量调度装置的示意框图;
图4示意性示出了根据本发明实施例的电子设备的一种方框图;以及
图5示意性示出了根据本发明实施例的用于流量调度的一种程序产品。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种流量调度方法和流量调度装置。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,使用现有技术中的方法进行流量调度时,由于依赖DNS解析***对用户来源进行识别,而DNS解析***的变更生效都是非常缓慢的,因此影响了机房之间进行切换需要耗费较长的时间,从而导致流量调度的效率较低;并且在导致快速扩容切换时,机房暂时不可用变更的情况导致整个流量调度过程体验较差;对于很多没有做跨机房的登录状态同步的***而言,无法解决客户端的网络从数据切换至WiFi时机房入口的变化,从而导致用户的登录状态丢失,可靠性较差。
基于上述内容,本发明的基本思想在于:根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;在检测到所述机房后端的应用状态出现异常情况时,通过前端入口对所述机房的流量进行自动调度。因此,根据本发明的实施方式可以对不同机房之间的流量实现快速高效调度,且解决了机房入口发生变化时导致用户流量丢失的问题,实现了跨机房的状态保持,确保了业务的连续性,提高了可靠性。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,图1示出了本发明的实施方式的一个示例性应用场景的框架示意图。如图1所示,客户端可以向机房发送用户请求。本领域技术人员应该理解,图1所示的示意框架仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的适用范围不受到该框架任何方面的限制。
需要说明的是,本发明的示例性附图以两个机房为例,然而,本发明的应用场景不限于两个机房服务器。本发明的应用场景也可以应用于包含任意数量的分布式服务器集群中。
还需要说明的是,机房均可以由服务器组成,其中服务器均可以是本地服务器或远程服务器,还可以是其他能够提供存储功能或者处理功能的产品例如云服务器,本发明的实施方式在此不做特殊限定。
应该理解的是,本发明的应用场景中,在执行主体方面不受任何限制,只要执行了本发明实施方式所公开的动作即可。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的用于流量调度的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示出了根据本发明一实施例的流量调度方法的流程图。需要说明的是,图2中所示的步骤S210至步骤S230可以用于不同机房之间的流量调度。参照图2所示,该流量调度方法可以包括以下步骤:
步骤S210.根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
步骤S220.解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;
步骤S230.在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
根据本发明实施方式的流量调度方法和流量调度装置,一方面,通过根据多个机房的字段标识确定所述客户端首次访问的所述机房,避免了相关技术中依赖域名解析进行流量识别,进而提高了流量切换效率;另一方面,在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度,解决了机房入口发生变化时导致用户流量丢失的问题,实现了跨机房的状态保持,确保了业务的连续性,提高了可靠性,为用户带来了更好的体验。
接下来,将对本示例实施例中的流量调度方法进一步进行说明。
在步骤S210中,根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房。
在本示例实施例中,为了解决和避免单机房出现故障影响网络可靠性的问题,可以对某一业务进行多机房部署。对于一个产品例如电商***而言,内部是需要很多子***一起协助。其多机房部署场景可以描述为:假设应用a部署在机房1,在机房1的其他应用可以调用应用a的接口,然后还有很多的子***是部署在机房2,机房2中的应用也需要调用到应用a,那么这样机房2中的应用调用机房1中的a应用时,就有因为跨机房导致的时延问题。如果***的每秒查询率QPS要求很高,那么应用a最好也应该部署在机房2中,从而实行多机房部署。应用e和d都需要调用应用a,那么我们可以把应用a也在机房2中部署,这样就可以避免跨机房时延问题。
多个机房可以根据实际需求进行构建,本示例中以两个机房之间的流量调度过程为例进行说明。首先可以为每一个机房提供或者是配置一个字段标识,该字段标识例如可以为cookie字段标识或者是http。Cookie是存储于访问者的客户端中的变量,每当同一台客户端通过浏览器请求某个页面时,就会发送这个cookie。Cookie可以应用于保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了。除此之外,cookie还可以设置登录有效期,当超过登录有效期后,cookie就会自动消失。由于cookie是运行在客户端的,因此可以通过特定的网站页面JavaScript中的setcookie函数设置所述cookie字段标识,也可以通过应用程序后台设置。
由于每个机房都有唯一对应的字段标识,因此可以对某一客户端的用户请求进行解析识别,从而根据解析结果可以快速确定所述客户端首次访问的所述机房。客户端例如可以为手机、电脑、IPAD等可以连接网络的电子设备。
其中,确定所述客户端首次访问的所述机房的具体步骤可以包括:
通过DNS解析所述用户请求,并根据所述用户请求中的属性字段确定所述客户端首次访问的所述机房。
举例而言,如果某个核心应用分别在机房1和机房2部署了Hadoop处理集群。客户端A第一次访问的时候通过DNS解析,确定访问到了机房1,则客户端A对应的客户端请求如http请求头中会出现如下内容:“Set-Cookie:CLUSTERENV=HZIDC;domain=.xx.163.com;path=/;expires=Tue,15-Aug-201715:46:37GMT”。然后客户端A访问的时候都会带这个CLUSTERENV的属性cookie,即客户端A之后都将访问机房1。例如,参考图1所示的应用场景,如果一个需要进行支付业务的客户端的用户请求cookie里面包含杭州机房对应的HZIDC,即使该用户请求当前访问广州机房,也会将流量通过内网调度到杭州机房进行支付业务。
本示例中,通过用户请求中的cookie字段识别用户请求的机房入口,避免了相关技术中对DNS***的依赖性,因此也降低了DNS***缓慢导致的低效的影响,为实现快速切换机房和流量调度作基础。
在步骤S220中,解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端。
在本示例性实施例中,字段标识可以理解为上述步骤中为每一个机房配置的字段标识,可以通过前端web入口集群解析所述客户端的所有用户请求中的字段标识,并根据对所述字段标识的解析结果中的属性字段将所有的用户请求依次动态分发至对应的机房,以使机房后端对接收到的用户请求进行处理。例如可以将每个用户请求按时间顺序逐一分配到不同的后端服务器、也可以对每个用户请求按访问IP的hash结果分配、或者按后端服务器的响应时间来分配用户请求,本示例对此不作特殊限定。
具体而言,前端web入口集群可以通过DNS解析***解析客户端发送的每个http请求,并找出该客户端的每个http请求解析结果cookie中的CLUSTERENV字段,然后按照每一个机房后端应用集群与每一个用户请求之间的映射关系,将与CLUSTERENV字段对应客户端的http请求动态分发至对应的机房后端。
在步骤S230中,在检测到所述机房后端的应用状态出现异常情况时,通过前端入口对所述机房的流量进行自动调度。
在本示例性实施例中,机房后端的应用状态出现掉线等异常情况时,为了保证业务或者应用的连续性,通常需要切换机房,例如手机客户端的网络可以由4G数据切换至WiFi。此时可以对前端web入口进行深度定制,从而实现用户跨机房的状态保持。例如,在用户进行网购时,用户A登录机房1后因网络变更访问到机房2的时候,机房2可以通过解析用户的http请求数据,从而将用户A的流量导流回机房1后端的应用集群。类似地,在机房2的网络发生变更时,前端web入口集群可以动态的将原来由机房2集群处理的用户请求导流到机房1,从而确保整体业务的连续性。由于机房入口随着网络发生变化,避免了用户登录状态丢失的问题,提高***的可靠性。
具体而言,步骤S230中所述的对所述机房的流量进行自动调度可以包括:
根据所述用户请求中的所述字段标识对所述机房的流量进行调度。
在本示例性实施例中,前端入口可以解析某一客户端发送的用户请求中的字段标识,并根据该字段标识将流量调度到与该字段标识唯一对应的机房,从而实现流量的精准调度。
其中,根据所述客户端用户请求中的所述字段标识对所述机房的流量进行调度具体可以包括:
根据所述用户请求中的所述字段标识与各所述机房后端应用集群之间的映射关系,对所述机房的流量按照预设逻辑进行调度。
举例而言,机房1对应的CLUSTERENV字段为GZIDC,机房2对应的CLUSTERENV字段为BJIDC,客户端A发出的http请求的cookie里面包含GZIDC,则按照所述字段标识与各所述机房后端应用集群之间的映射关系,将该http请求的分发至机房1。进一步地,如果一个客户端的用户请求当前访问广州机房,但是该用户请求cookie里面包含杭州机房对应的HZIDC,也会根据所述字段标识与各所述机房后端应用集群之间的映射关系,将流量通过内网调度到杭州机房。此方法无法避免机房出现异常情况,因此无法保证流量调度的可靠性。
为了避免上述问题,本示例步骤S230中所述的对所述机房对应的流量进行自动调度还可以包括:
根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度。
在本示例性实施例中,可以通过机房后端的应用状态对某一机房的流量进行调度。首先可以通过测试程序判断机房后端的应用状态是否异常,在后端应用处于不可用状态时,可以根据事先设置好的预设逻辑,通过前端入口对与该机房对应的流量进行自动调度。此处的预设逻辑可以根据实际需求进行设置,例如,在机房1异常时,将机房1的流量调度至机房2或者机房3。本示例中通过机房的前端入口,并根据所述机房后端的应用状态对所述机房的流量进行调度,避免了对DNS解析***的过度依赖,从而提高了切换机房时的流量调度效率。
具体而言,本示例实施方式中,根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度可以包括:
在第一机房后端的应用状态出现异常情况时,只保留所述第一机房的所述前端入口;
在所述客户端访问到所述第一机房的所述前端入口时,忽略所述客户端的所述字段标识中的流量调度信息并将所述流量导入第二机房;
所述第二机房的所述前端入口停止将所述流量调度到所述第一机房的后端。
在本示例性实施例中,如果第一机房后端的应用状态处于不可用状态或者发生整体变更不能服务时,则可以只保留第一机房的前端web入口集群。在任意一个客户端访问到第一机房入口时,由于第一机房的前端web入口发现第一机房后端状态异常,因此可以忽略用户请求中的字段标识包含的信息,自动将第一机房的流量导入或者调度至第二机房,与此同时,第二机房的前端入口也将停止将所述流量调度到所述第一机房的后端。本示例中,前端web入口通过机房后端的应用状态即可实现流量在不同机房之间的调度,保证了业务的连续性。
举例而言,在图1所示的应用场景中,第一机房为杭州机房,对应的cookie为HZIDC;第二机房为广州机房,对应的cookie为GZIDC。在杭州机房的业务暂时不可用或者要退该机房时,可以根据机房后端应用状态进行流量调度。具体的流程如下:在杭州机房和广州机房2个机房都在线运作时,如果杭州机房的业务要发生整体变更而不能服务,产品或者应用可以选择对杭州机房的所有业务集群下线,而只保留杭州机房的前端web入口。
如果用户请求访问到杭州机房入口时,由于杭州机房的前端web入口发现杭州机房后端不可用,则会主动忽略用户请求cookie中要求调度到杭州机房集群的信息,而主动将流量导入广州机房。广州机房的前端web入口也会发现杭州机房集群不可用,主动停止将流量调度到杭州机房的后端,从而实现所有业务的流量瞬间平滑地从杭州机房切换到广州机房的功能。
本示例中,前端web入口可以根据机房后端的应用状态进行流量的跨机房调度,相比于现有技术而言,在前端web入口层提升了业务容错性,降低后端业务开发时多机房应用的难度,提高了机房之间流量调度的效率。
进一步地,通过不同机房之间的流量调度,可以在多个机房之间实现业务相互容错,确保客户端发送的每个用户请求都不会因为某个机房集群的异常故障而受到影响。例如对于不支持跨机房session同步的应用而言,在手机用户前一个请求访问电信机房,后一个请求访问移动机房时,避免了因为机房切换过程中流量的丢失而导致用户需要反复登录的问题,从而确保部分业务不会因为某一机房故障导致业务中断和不连续的问题,提高***的可靠性。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明一示例性实施方式的流量调度装置300进行详细描述。如图3所示,流量调度装置300可以包括:流量识别模块301、请求发送模块302以及自动调度模块303。其中:
流量识别模块301,可以用于根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
请求发送模块302,可以用于解析所述客户端的所有所述用户请求中的预设字段,并将各所述用户请求动态发送至不同的机房后端;
自动调度模块303,可以用于在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
在本发明的一个实施例中,所述自动调度模块303可以包括:
第一调度模块,用于根据所述用户请求中的所述字段标识对所述机房的流量进行调度。
在本发明的又一个实施例中,所述自动调度模块303还可以包括:
第二调度模块,用于根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,所述第二调度模块包括:
入口保留模块,用于在第一机房后端的应用状态出现异常情况时,只保留所述第一机房的所述前端入口;
第二调度控制模块,用于在所述客户端访问到所述第一机房的所述前端入口时,忽略所述客户端的所述字段标识中的流量调度信息并将所述流量导入第二机房;
调度停止模块,用于所述第二机房的所述前端入口停止将所述流量调度到所述第一机房的后端。
在本发明的一个实施例中,所述第一调度模块包括:
第一调度控制模块,用于根据所述用户请求中的所述字段标识与各所述机房后端应用集群之间的映射关系,对所述机房的流量按照预设逻辑进行调度。
在本发明的一个实施例中,所述流量识别模块301可以包括:
流量解析模块,用于通过DNS解析所述用户请求,并根据所述用户请求返回值中的属性字段确定所述客户端首次访问的所述机房。
在本发明的一个实施例中,所述字段标识通过网站页面JavaScript设置或应用程序后台设置。
由于本发明的示例实施例中的流量调度装置300的各个功能模块与上述流量调度方法的各个步骤对应,因此在此将不再赘述。
示例性设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的用于流量调度的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本发明的流量调度设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的流量调度方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤S210:根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;步骤S220:解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;步骤S230:在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
下面参照图4来描述根据本发明的这种实施方式的用于流量调度的电子设备400。图4所示的流量调度设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,流量调度设备400以通用计算设备的形式表现。流量调度设备400的组件可以包括但不限于:上述至少一个处理单元401、上述至少一个存储单元402、连接不同***组件(包括存储单元402和处理单元401)的总线403。
总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元402可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)4021和/或高速缓存存储器4022,还可以进一步包括只读存储器(ROM)4023。
存储单元402还可以包括具有一组(至少一个)程序模块4024的程序/实用工具4025,这样的程序模块4024包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
流量调度设备400也可以与一个或多个外部设备404(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与流量调度设备400交互的设备通信,和/或与使得流量调度设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口405进行。并且,流量调度设备400还可以通过网络适配器406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器406通过总线403与流量调度设备400的其它模块通信。应当明白,尽管图4中未示出,可以结合流量调度设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的流量调度方法中的步骤,例如,所述处理单元可以执行如图2中所示的步骤S210:根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;步骤S220:解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;步骤S230:在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图5所示,描述了根据本发明的实施方式的用于流量调度的程序产品500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了流量调度设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种流量调度方法,其特征在于,包括:
根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
解析所述客户端的所有所述用户请求中的字段标识,并将各所述用户请求动态发送至对应的机房后端;
在检测到所述机房后端的应用状态出现异常情况时,通过前端入口对所述机房的流量进行自动调度。
2.根据权利要求1所述的流量调度方法,其特征在于,对所述机房的流量进行自动调度包括:
根据所述用户请求中的所述字段标识对所述机房的流量进行调度。
3.根据权利要求1所述的流量调度方法,其特征在于,对所述机房对应的流量进行自动调度还包括:
根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度。
4.根据权利要求3所述的流量调度方法,其特征在于,根据所述机房后端的应用状态对所述机房的流量按照预设逻辑进行调度包括:
在第一机房后端的应用状态出现异常情况时,只保留所述第一机房的所述前端入口;
在所述客户端访问到所述第一机房的所述前端入口时,忽略所述客户端的所述字段标识中的流量调度信息并将所述流量导入第二机房;
所述第二机房的所述前端入口停止将所述流量调度到所述第一机房的后端。
5.根据权利要求2所述的流量调度方法,其特征在于,根据所述用户请求中的字段标识对所述机房的流量进行调度包括:
根据所述用户请求中的所述字段标识与各所述机房后端应用集群之间的映射关系,对所述机房的流量按照预设逻辑进行调度。
6.根据权利要求1所述的流量调度方法,其特征在于,确定所述客户端首次访问的所述机房包括:
通过DNS解析所述用户请求,并根据所述用户请求返回值中的属性字段确定所述客户端首次访问的所述机房。
7.根据权利要求1所述的流量调度方法,其特征在于,所述字段标识通过网站页面JavaScript设置或应用程序后台设置。
8.一种流量调度装置,其特征在于,包括:
流量识别模块,用于根据多个机房的字段标识对一客户端的用户请求进行识别,并确定所述客户端首次访问的所述机房;
请求发送模块,用于解析所述客户端的所有所述用户请求中的预设字段,并将各所述用户请求动态发送至不同的机房后端;
自动调度模块,用于在检测到所述机房后端的应用状态出现异常情况时,通过所述机房的前端入口对所述机房的流量进行自动调度。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任意一项所述的流量调度方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7中任意一项所述的流量调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953261.9A CN107635010B (zh) | 2017-10-13 | 2017-10-13 | 流量调度方法、装置、计算机可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953261.9A CN107635010B (zh) | 2017-10-13 | 2017-10-13 | 流量调度方法、装置、计算机可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107635010A true CN107635010A (zh) | 2018-01-26 |
CN107635010B CN107635010B (zh) | 2021-04-13 |
Family
ID=61105405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710953261.9A Active CN107635010B (zh) | 2017-10-13 | 2017-10-13 | 流量调度方法、装置、计算机可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107635010B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327520A (zh) * | 2018-10-19 | 2019-02-12 | 中国银行股份有限公司 | 建立终端与服务器节点连接的方法及装置 |
CN109508912A (zh) * | 2018-12-29 | 2019-03-22 | 广州虎牙信息科技有限公司 | 一种业务调度方法、装置、设备和存储介质 |
CN110046092A (zh) * | 2019-03-12 | 2019-07-23 | 北京创鑫旅程网络技术有限公司 | 实验分流方法、装置、电子设备和计算机可读存储介质 |
CN110198346A (zh) * | 2019-05-06 | 2019-09-03 | 北京三快在线科技有限公司 | 数据读取方法、装置、电子设备及可读存储介质 |
CN110266747A (zh) * | 2019-04-12 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 业务请求的机房转接方法和装置 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
WO2023169202A1 (zh) * | 2022-03-11 | 2023-09-14 | 北京沃东天骏信息技术有限公司 | 视频流数据获取方法、装置、电子设备和计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379130A (zh) * | 2012-04-13 | 2013-10-30 | 深圳市腾讯计算机***有限公司 | 一种基于应用层数据的网络接入***和方法 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和*** |
EP2961124A1 (en) * | 2014-06-23 | 2015-12-30 | Alcatel Lucent | Method for enhancing captive portal service |
CN106060088A (zh) * | 2016-07-26 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种服务管理方法及装置 |
CN106961469A (zh) * | 2017-02-28 | 2017-07-18 | 北京致远互联软件股份有限公司 | 基于http代理服务器的无感知定向代理方法及*** |
-
2017
- 2017-10-13 CN CN201710953261.9A patent/CN107635010B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379130A (zh) * | 2012-04-13 | 2013-10-30 | 深圳市腾讯计算机***有限公司 | 一种基于应用层数据的网络接入***和方法 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和*** |
EP2961124A1 (en) * | 2014-06-23 | 2015-12-30 | Alcatel Lucent | Method for enhancing captive portal service |
CN106060088A (zh) * | 2016-07-26 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种服务管理方法及装置 |
CN106961469A (zh) * | 2017-02-28 | 2017-07-18 | 北京致远互联软件股份有限公司 | 基于http代理服务器的无感知定向代理方法及*** |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327520A (zh) * | 2018-10-19 | 2019-02-12 | 中国银行股份有限公司 | 建立终端与服务器节点连接的方法及装置 |
CN109327520B (zh) * | 2018-10-19 | 2021-04-30 | 中国银行股份有限公司 | 建立终端与服务器节点连接的方法及装置 |
CN109508912A (zh) * | 2018-12-29 | 2019-03-22 | 广州虎牙信息科技有限公司 | 一种业务调度方法、装置、设备和存储介质 |
CN109508912B (zh) * | 2018-12-29 | 2021-05-28 | 广州虎牙信息科技有限公司 | 一种业务调度方法、装置、设备和存储介质 |
CN110046092A (zh) * | 2019-03-12 | 2019-07-23 | 北京创鑫旅程网络技术有限公司 | 实验分流方法、装置、电子设备和计算机可读存储介质 |
CN110266747A (zh) * | 2019-04-12 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 业务请求的机房转接方法和装置 |
CN110266747B (zh) * | 2019-04-12 | 2022-04-08 | 创新先进技术有限公司 | 业务请求的机房转接方法和装置 |
CN110198346A (zh) * | 2019-05-06 | 2019-09-03 | 北京三快在线科技有限公司 | 数据读取方法、装置、电子设备及可读存储介质 |
CN110198346B (zh) * | 2019-05-06 | 2020-10-27 | 北京三快在线科技有限公司 | 数据读取方法、装置、电子设备及可读存储介质 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113472687B (zh) * | 2021-07-15 | 2023-12-05 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
WO2023169202A1 (zh) * | 2022-03-11 | 2023-09-14 | 北京沃东天骏信息技术有限公司 | 视频流数据获取方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107635010B (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107635010A (zh) | 流量调度方法、装置、计算机可读存储介质及电子设备 | |
US9667750B2 (en) | Client-initiated leader election in distributed client-server systems | |
US10733384B2 (en) | Emotion detection and expression integration in dialog systems | |
US10873546B2 (en) | System and method for automated contact center agent workstation testing | |
US11032126B2 (en) | Diagnostic traffic generation for automatic testing and troubleshooting | |
US11645582B2 (en) | Parameter sharing in federated learning | |
GB2495609A (en) | Interface integrating multiple communications channels using respective media | |
CN108989583A (zh) | 呼叫中心的压力测试方法、***、电子设备和存储介质 | |
US20160239762A1 (en) | System and method for an optimized, self-learning and self-organizing contact center | |
US20220171011A1 (en) | Positioning method and device, server, storage medium and terminal | |
CN110445844A (zh) | 短信多通道选择方法及装置、存储介质、电子设备 | |
US20160378162A1 (en) | Validating power paths to it equipment | |
CN110198335A (zh) | 消息同步方法及装置、电子设备及存储介质 | |
CN112152879B (zh) | 网络质量确定方法、装置、电子设备和可读存储介质 | |
US11184477B2 (en) | Gapless audio communication via discourse gap recovery model | |
WO2021016020A1 (en) | Systems and methods for providing bidirectional forwarding detection with performance routing measurements | |
CN109698774A (zh) | 用于监测设备工作状态的方法及装置 | |
US9749468B1 (en) | Area code and call duration-aware call screening | |
US20220076661A1 (en) | Duration based task monitoring of artificial intelligence voice response systems | |
US11089137B2 (en) | Dynamic data transmission | |
US10783886B2 (en) | Cognitive agent disambiguation | |
CN113452539B (zh) | 源站切换方法、装置、电子设备及存储介质 | |
WO2018195276A1 (en) | Automated contact center agent workstation testing | |
US11972304B1 (en) | Systems and methods for automatic detection of an event and providing resources customized based on the event | |
US20240244104A1 (en) | System, method, and computer program for dynamic service deployment |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231110 Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd. Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories Patentee before: NETEASE (HANGZHOU) NETWORK Co.,Ltd. |