CN114465960A - 流量切换方法、装置和存储介质 - Google Patents
流量切换方法、装置和存储介质 Download PDFInfo
- Publication number
- CN114465960A CN114465960A CN202210120152.XA CN202210120152A CN114465960A CN 114465960 A CN114465960 A CN 114465960A CN 202210120152 A CN202210120152 A CN 202210120152A CN 114465960 A CN114465960 A CN 114465960A
- Authority
- CN
- China
- Prior art keywords
- request
- application system
- processed
- processing
- preset
- 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 71
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000012544 monitoring process Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000009826 distribution Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/622—Queue service order
- H04L47/6235—Variable service order
-
- 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/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提出一种流量切换方法、装置和存储介质,涉及计算机技术领域。本公开的一种流量切换方法,包括:监听并拦截调用第一应用系统的服务请求,获取待处理请求;根据待处理请求的输入参数匹配预设参数;在待处理请求的输入参数与预设参数匹配成功的情况下,获取并执行预设的流量切换规则,其中,预设的流量切换规则中待处理请求的转发对象包括第二应用系统;在待处理请求的输入参数与预设参数匹配不成功的情况下,将待处理请求发送给第一应用系统处理。这样的方法提高了流量切换的灵活度。
Description
技术领域
本公开涉及计算机技术领域,特别是一种流量切换方法、装置和存储介质。
背景技术
在应用系统提供服务的过程中,当需要更换应用系统时,需要将流量从原平台切换至目标平台。在相关技术中,应用系统根据业务需要,通过固定的参数配置实现全部流量的切换。
发明内容
本公开的一个目的在于提高流量切换的灵活度。
根据本公开的一些实施例的一个方面,提出一种流量切换方法,包括:监听并拦截调用第一应用系统的服务请求,获取待处理请求;根据待处理请求的输入参数匹配预设参数;在待处理请求的输入参数与预设参数匹配成功的情况下,获取并执行预设的流量切换规则,其中,预设的流量切换规则中待处理请求的转发对象包括第二应用系统;在待处理请求的输入参数与预设参数匹配不成功的情况下,将待处理请求发送给第一应用系统处理。
在一些实施例中,该方法还包括:在拦截调用第一应用系统的流量后,获取待处理请求对应的开关的状态;在开关的状态为匹配切换的情况下,执行根据待处理请求的输入参数匹配预设参数的操作。
在一些实施例中,该方法还包括以下至少一项:在开关的状态为全部切换的情况下,将待处理请求转发给第二应用系统处理;或在开关的状态为关闭的情况下,将待处理请求发送给第一应用系统处理。
在一些实施例中,根据待处理请求的输入参数匹配预设参数包括:通过动态反射技术,动态收集待处理请求的输入参数,并将收集的输入参数与预设参数相匹配。
在一些实施例中,监听并拦截调用第一应用系统的服务请求,获取待处理请求包括:监听第一应用系统的接口,确定调用接口的服务请求;拦截调用接口的服务请求作为待处理请求。
在一些实施例中,根据流量切换规则将待处理请求转发给第一应用系统、第二应用系统中的至少一个进行处理包括:根据第一应用系统、第二应用系统的输入参数格式,对待处理请求的输入参数执行格式转换,获取转换输入参数;根据待处理请求的输入参数和转换输入参数中的至少一项,基于流量切换规则将待处理请求转发给对应的应用系统,应用系统包括第一应用系统和第二应用系统。
在一些实施例中,预设的流量切换规则包括:将待处理请求发送给第二应用系统处理。
在一些实施例中,预设的流量切换规则包括:将待处理请求发送给第一应用系统和第二应用系统处理。
在一些实施例中,预设的流量切换规则包括:将待处理请求发送给第二应用系统处理;在所述第二应用系统处理失败的情况下,则将所述待处理请求发送给第一应用系统处理,待处理请求的处理结果为第一应用系统的输出结果。
在一些实施例中,预设的流量切换规则包括:将待处理请求发送给第一应用系统和第二应用系统分别处理,并将第一应用系统与第二应用系统的输出结果比较,确定第一应用系统与第二应用系统的输出结果是否相同。
在一些实施例中,监听并拦截调用第一应用系统的服务请求,获取待处理请求包括:监听第一应用系统的服务请求的消息队列;拦截消息队列中的服务请求,获取待处理请求。
在一些实施例中,该方法还包括:监听第二应用系统的服务请求的消息队列,并拦截消息队列中的服务请求,获取待处理请求,以便执行根据待处理请求的输入参数匹配预设参数的操作。
在一些实施例中,预设的流量切换规则包括:将待处理请求转发给第二应用系统处理。
在一些实施例中,获取待处理请求包括:判断被拦截的服务请求所属的消息队列是否属于流量切换范围;若服务请求属于流量切换范围,则将服务请求作为待处理请求;若服务请求不属于流量切换范围,则退出对服务请求的流量切换操作。
根据本公开的一些实施例的一个方面,提出一种流量切换装置,包括:请求获取单元,被配置为监听并拦截调用第一应用系统的服务请求,获取待处理请求;匹配单元,被配置为第一应用系统;分流单元,被配置为在待处理请求的输入参数与预设参数匹配成功的情况下,获取并执行预设的流量切换规则,其中,预设的流量切换规则中待处理请求的转发对象包括第二应用系统;在待处理请求的输入参数与预设参数匹配不成功的情况下,将待处理请求发送给第一应用系统处理。
在一些实施例中,该装置还包括:状态确定单元,被配置为在请求获取单元拦截调用第一应用系统的流量后,获取待处理请求对应的开关的状态;在开关的状态为匹配切换的情况下,触发匹配单元执行操作;在开关的状态为全部切换的情况下,将待处理请求转发给第二应用系统处理;或在开关的状态为关闭的情况下,将待处理请求发送给第一应用系统处理。
在一些实施例中,请求获取单元被配置为:监听第一应用系统的接口,确定调用接口的服务请求,拦截调用接口的服务请求,获取待处理请求。
在一些实施例中,请求获取单元被配置为:监听第一应用系统的服务请求的消息队列,拦截消息队列中的服务请求,获取待处理请求。
根据本公开的一些实施例的一个方面,提出一种流量切换装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种流量切换方法。
根据本公开的一些实施例的一个方面,提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种流量切换方法的步骤。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本公开的流量切换方法的一些实施例的流程图。
图2为本公开的流量切换方法的另一些实施例的流程图。
图3为本公开的流量切换方法的又一些实施例的流程图。
图4为本公开的流量切换方法的再一些实施例的流程图。
图5为本公开的流量切换方法的配置运行过程流程图。
图6为本公开的流量切换装置的一些实施例的示意图。
图7为本公开的流量切换装置的另一些实施例的示意图。
图8为本公开的流量切换装置的又一些实施例的示意图。
具体实施方式
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
本公开的流量切换方法的一些实施例的流程图如图1所示。以流量中的一个服务请求为例,基于流量切换方法执行以下步骤。
在步骤110中,监听并拦截调用第一应用系统的服务请求,获取待处理请求。第一应用系统是处理当前流量的系统,服务请求可以包括调用第一应用系统API(ApplicationProgramming Interface,应用程序接口),以及位于MQ(Message Queue,消息队列)中的请求中的至少一种。
在步骤130中,根据待处理请求的输入参数匹配预设参数。在一些实施例中,待处理请求的输入参数可以包括操作人名称、门店编码、商品编码等中的一项或多项。预设参数中可以包括执行流量切换的参数值,通过执行参数匹配操作能够确定当前的待处理请求是否在切流范围内,从而实现能够控制切流的百分比。
在一些实施例中,可以利用反射技术,递归收集待处理请求的输入参数后,通过循环匹配的方法匹配输入参数与预设参数。
在一些实施例中,预设参数可以存储于分布式统一配置中心,保证配置的一致性和灵活性。
在步骤140中,在待处理请求的输入参数与预设参数匹配成功的情况下,获取并执行预设的流量切换规则。预设的流量切换规则中待处理请求的转发对象包括第二应用系统,从而实现使用第二应用系统处理待处理请求。
在一些实施例中,流量切换规则为使待处理请求同步发送给第一、第二应用系统,由第一、第二应用系统分别输出处理结果,从而在实现对第二应用系统处理测试的同时,保证服务正常运行。
在一些实施例中,流量切换规则为将待处理请求发送给第一应用系统和第二应用系统分别处理,由第一、第二应用系统分别输出处理结果;并将第一应用系统与第二应用系统的输出结果比较,确定第一应用系统与第二应用系统的输出结果是否相同,对服务请求的处理结果以第一应用系统为准,同时根据输出结果确定第二应用系统是否正常运行,从而在保证服务正常处理的同时,便于定位第二应用系统的问题,提高系统测试效率。
在一些实施例中,流量切换规则为仅将待处理请求发送给第二应用系统处理,由第二应用系统输出处理结果,从而实现流量的完全切换。
在一些实施例中,流量切换规则为将待处理请求发送给第二应用系统处理,若处理成功则待处理请求的处理结果为第二应用系统的输出结果;若处理失败,则将处理失败的待处理请求发送给第一应用系统处理,待处理请求的处理结果为第一应用系统的输出结果。通过这样的方法,能够在实现待处理请求尽力切换的同时,确保未能成功处理的服务请求回到原系统处理,确保服务的可靠性;同时,基于第一应用系统的接口被调用的次数也能够确定第二应用系统的成功比例,例如当第一应用系统的接口不再被调用时,确定第二应用系统测试完成,从而为流量的完全切换提供依据。
在一些实施例中,流量切换规则也可以为将所有的待处理请求交由第一应用系统处理,从而增加了使流量保持不切换的方式,提高可靠性。
在步骤150中,在待处理请求的输入参数与预设参数匹配不成功的情况下,将待处理请求发送给第一应用系统处理,由第一应用系统输出处理结果,从而不影响对待处理请求的原始处理方式,确保服务请求被正常处理。
基于上述实施例中的方法,能够通过待处理请求的输入参数确定其是否对其进行流量切换,以及具体的流量切换规则,从而实现流量的差异化切换,提高了流量切换的灵活度;另外,通过对于预设参数的设置能够达到控制切流百分比的效果,从而实现流量的逐渐切换,避免全部切换对新系统造成过大压力,提高流量切换的安全性。
在一些实施例中,可以对第一应用系统引入切流框架Starter,在需要切流的接口上增加切流注解。在一些实施例中,第一应用系统只需引入对应的jar(Java Archive,Java归档)格式的文件包即可开始运行流量切换方法,从而降低部署难度,提高启动效率。
本公开的流量切换方法的另一些实施例的流程图如图2所示。
在步骤210中,监听并拦截调用第一应用系统的服务请求,获取待处理请求。
在步骤220中,获取待处理请求对应的开关的状态。在一些实施例中,开关可以基于现有配置中心技术(如zookeeper)进行配置。在一些实施例中,当开关处于匹配切换状态时,则执行步骤230,进行部分流量切换。
在一些实施例中,开关还可以具备全部切换状态,在该状态下,执行步骤260。在一些实施例中,开关还可以具备闭合状态,在该状态下,阻止流量切换,执行步骤250。
在步骤230中,判断待处理请求的输入参数是否与预设参数匹配成功。若匹配成功,则执行步骤240;否则执行步骤250。
在步骤240中,获取并执行预设的流量切换规则,预设的流量切换规则中待处理请求的转发对象包括第二应用系统,从而实现部分或全部流量向第二应用系统的切换。
在步骤250中,将待处理请求发送给第一应用系统处理。
在步骤260中,将待处理请求发送给第二应用系统处理。
基于上述实施例中的方式,能够利用开关方便快捷的调整切流的模式,通过调整开关的状态及时的操作是否进行流量切换、是否对流量进行全部切换,提高可控性。在一些实施例中,当第二应用系统出现异常时,开关可以被调节为关闭状态,从而避免服务请求漏执行,提高服务的可靠度。
在一些实施例中,被执行流量切换的服务请求可以自API获取。本公开的流量切换方法的又一些实施例的流程图如图3所示。
在步骤310中,流量切换装置监听第一应用系统的API,确定调用API的服务请求。
在一些实施例中,切流注解可以包括调用新接口的方法、输入参数的格式转换方法、输出参数的格式转换方法、以及第二应用系统的接口出现异常时的处理方式中的一种或多种。
在步骤311中,流量切换装置拦截调用API的服务请求,作为待处理请求。在一些实施例中,可以采用AOP(Aspect Oriented Programming,面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的方式,进行流量拦截。
在步骤320中,获取待处理请求对应的开关的状态。在开关的状态为匹配切流状态时,执行步骤330;当开关的状态为全部切流状态时,执行步骤360;当开关的状态为关闭状态时,执行步骤350。
在步骤330中,将待处理请求的输入参数与预设参数进行匹配,若匹配成功,则执行步骤370;否则执行步骤350。
在一些实施例中,可以根据开关的输出值为匹配切换的情况下,调用配置中心存储的预设参数;通过动态反射技术,动态收集待处理请求的输入参数;进而将收集的输入参数与预设参数相匹配,确定是否匹配成功。
在步骤350中,将待处理请求发送给第一应用系统处理,将第一应用系统输出的处理结果作为对服务请求的处理结果。在这样的情况下,所有的待处理请求均交由第一应用系统处理,保持原状态,不执行流量切换。
在步骤360中,将待处理请求发送给第二应用系统处理。在这样的情况下,所有的待处理请求均交由第二应用系统处理,完成流量向第二应用系统的切换。
在步骤340中,根据第一应用系统、第二应用系统的输入参数格式,对待处理请求的输入参数执行格式转换,获取转换输入参数。
在步骤370中,获取流量切换规则。在一些实施例中,流量切换规则可以为预设的一种,或从规则库预设的多种规则中配置的当前执行的规则。
具体的,流量切换规则可以为步骤371~374中的任意一种,基于当前选择的流量切换规则,流量切换装置执行对应的操作。
在步骤371中,流量切换装置仅将待处理请求发送给第二应用系统处理,使得所有的待处理请求均交由第二应用系统处理,完成流量向第二应用系统的切换。该流量切换规则可以在对第二应用系统测试完成,或流量切换的后期使用,从而在不设置开关或不改变开关状态的情况下,完成流量的全部切换。
在步骤372中,将待处理请求发送给第一应用系统和第二应用系统处理,两个系统会分别输出自身的处理结果,对待处理请求的处理结果同时包括来自两个系统的处理结果,从而实现处理请求和处理结果在两个系统的同步,提高数据一致性。
在步骤373中,将待处理请求发送给第二应用系统处理,若能够处理成功,则第二应用系统的输出结果即为对待处理请求的处理结果,在一些实施例中,可以在处理成功的情况下调用success(成功)回调接口;若第二应用系统处理失败,则流量切换装置将调用第一应用系统的接口,将处理失败的待处理请求发送给第一应用系统处理,并将第一应用系统的处理结果作为最终对待处理请求的处理结果。这样的规则适用于打标计算流量切换比例,打标记录到redis(Remote Dictionary Server,远程字典服务)或数据库,便于统计已切换的流量的数据、参考MQ流量切换的数据)。
在步骤374中,将待处理请求发送给第一应用系统和第二应用系统分别处理,并将第一应用系统与第二应用系统的输出结果比较,确定第一应用系统与第二应用系统的输出结果是否相同。此时,处理结果以第一应用系统的输出结果为准,根据输出结果确定第二应用系统的可靠性。若输出结果不同,则可以认为第二应用系统仍不可靠,暂时不将流量全部切换至第二应用系统处理。
在一些实施例中,对于来自第二应用系统的输出结果,在第一、第二应用系统的输出结果基于的协议不同的情况下,可以进行协议转换,使第二应用系统的输出结果转换为符合第一应用系统输出结果的形式,从而实现服务过程中的无感知流量切换。
基于上述实施例中的方法,能够实现对于调用原应用系统API的流量向新系统的切换,以单个服务请求为颗粒确定是否切换,提高流量切换的精度和灵活度;通过开关、规则以及预设参数的设置提高对流量切换的控制能力,从而便于用于流量切换的测试、试运行到实际运行的各个阶段,有利于推广应用。
在一些实施例中,被执行流量切换的服务请求可以自MQ获取。本公开的流量切换方法的再一些实施例的流程图如图4所示。
在步骤410中,监听第一应用系统的服务请求的MQ。在一些实施例中,还可以监听第二应用系统的服务请求的MQ。在一些实施例中,被监听的MQ可以根据需求预设。
在步骤411中,拦截各个MQ中的服务请求。
在步骤412中,判断被拦截的服务请求所属的MQ属于流量切换范围。若属于流量切换范围,则执行步骤413;否则,执行步骤414。
在一些实施例中,可以通过MQ的名称判断是否属于流量切换范围。在一些实施例中,可以预设需要流量切换的MQ的名称或MQ的名称的规则,进而将获得的服务请求所属的MQ的名称与预设参数匹配,若匹配成功,则确定是否属于流量切换范围;若未匹配成功,则不属于流量切换范围。
在步骤413中,将服务请求作为待处理请求,执行步骤420。
在步骤414中,退出对当前服务请求的流量切换操作,对当前服务请求的处理结束,该服务请求会按照不进行流量切换的状态、交由其所属的MQ对应的应用系统处理。
在步骤420中,获取待处理请求对应的开关的状态。在开关的状态为匹配切流状态时,执行步骤430;当开关的状态为全部切流状态时,执行步骤460;当开关的状态为关闭状态时,执行步骤450。
在步骤430中,从配置中心提取预设参数,并将待处理请求的输入参数与预设参数匹配,确定是否匹配成功。若能够匹配成功,则执行步骤440;否则,执行步骤450。
在步骤440中,确定待处理请求满足流量切换要求,流量切换规则为将待处理请求发送给第二应用系统处理。流量切换装置执行该规则,将待处理请求交由第二应用系统执行,实现MQ流量的完全切换。
在步骤450中,将待处理请求发送给第一应用系统处理,从而阻止MQ流量的切换。
在步骤460中,将待处理请求发送给第二应用系统处理,从而实现MQ流量的完全切换。
基于上述实施例中的方式,能够实现MQ中流量向新系统的切换,以单个服务请求为颗粒确定是否切换,提高流量切换的精度和灵活度;通过开关和预设参数的设置提高对流量切换的控制能力。
在一些实施例中,在流量切换过程中,可以既从MQ获取服务请求,又从API获取服务请求。对于不同来源的待处理的请求采用相同的开关状态和预设参数。考虑到订单创建是通过RPC接口,后续状态变更是通过MQ异步完成,通上述实施例中的方法,能够使接口和MQ的流量均进行相同条件的切换判断,从而提高对于应用系统的流量切换的整体性,使流量切换更加全面。
在一些实施例中,本公开的流量切换方法的配置运行过程流程图如图5所示。本实施例中涉及的流量切换规则、运行过程仅为示例,并不造成对本公开的不当限制。
在初始状态51下,外部应用511发出的请求全部发送给第一应用系统512。
当需要进行流量切换时,进入制定流量切换规则52环节。在一些实施例中,配置使外部应用能够访问第一应用系统512和第二应用系统513。第二应用系统513被配置为能够调用第二应用系统的接口,并在第二应用系统接口回调异常的情况下调用第一应用系统的接口。
在服务接管53环节,开始运行流量切换,第一应用系统接口和第二应用系统接口分担流量,部分流量由第二应用系统接管。
在完全接管、旧应用下线54环节,全部流量切换至第二应用系统513接管,第一应用系统可以下线。
基于上述实施例中的方法,能够利用灵活配置的流量切换应用于流量切换的不同环节,针对各个环节的需求调节切换比例,从而在提高切换的可靠性、安全性的同时,扩大应用范围,有利于推广应用。
本公开的流量切换装置的一些实施例的示意图如图6所示。
请求获取单元601能够监听并拦截调用第一应用系统的服务请求,获取待处理请求。第一应用系统是处理当前流量的系统,服务请求可以包括调用第一应用系统API(Application Programming Interface,应用程序接口),或位于MQ(Message Queue,消息队列)中的请求中的至少一种。
匹配单元602能够根据待处理请求的输入参数匹配预设参数。在一些实施例中,待处理请求的输入参数可以包括操作人名称、门店编码、商品编码等中的一项或多项。预设参数中可以包括执行流量切换的参数值,通过执行参数匹配操作能够确定当前的待处理请求是否在切流范围内,从而实现能够控制切流的百分比。在一些实施例中,可以利用反射技术,递归收集待处理请求的输入参数后,通过循环匹配的方法匹配输入参数与预设参数。
分流单元603能够在待处理请求的输入参数与预设参数匹配成功的情况下,获取并执行预设的流量切换规则。预设的流量切换规则中待处理请求的转发对象包括第二应用系统,从而实现使用第二应用系统处理待处理请求。另外,在待处理请求的输入参数与预设参数匹配不成功的情况下,将待处理请求发送给第一应用系统处理,从而不影响对待处理请求的原始处理方式,确保服务请求被正常处理。
这样的流量切换装置能够通过待处理请求的输入参数确定其是否对其进行流量切换,以及具体的流量切换规则,从而实现流量的差异化切换,提高了流量切换的灵活度;另外,通过对于预设参数的设置能够达到控制切流百分比的效果,从而实现流量的逐渐切换,避免全部切换对新系统造成过大压力,提高流量切换的安全性。
在一些实施例中,如图6所示,流量切换装置还包括状态确定单元604,能够在请求获取单元601获取待处理请求后,获取待处理请求对应的开关的状态。在一些实施例中,开关可以基于现有配置中心技术(如zookeeper)进行配置。在一些实施例中,当开关处于匹配切换状态时,状态确定单元604触发匹配单元602执行参数匹配操作。
在一些实施例中,当状态确定单元604确定开关为全部切换状态时,将待处理请求转发给第二应用系统处理;在一些实施例中,当状态确定单元604确定开关为闭合状态时,阻止流量切换,将待处理请求发送给第一应用系统处理。
这样的装置能够利用开关方便快捷的调整切流的模式,通过调整开关的状态及时的操作是否进行流量切换、是否对流量进行全部切换,提高可控性。在一些实施例中,当第二应用系统出现异常时,开关可以被调节为关闭状态,从而避免服务请求漏执行,提高服务的可靠度。
在一些实施例中,请求获取单元601可以既从MQ获取服务请求,又从API获取服务请求,从而实现对API和MQ中的服务请求均进行流量切换;且对于不同来源的待处理的请求采用相同的开关状态和预设参数。这样的装置能够使接口和MQ的流量均进行相同条件的切换判断,从而提高对于应用系统的流量切换的整体性,使流量切换更加全面。
本公开流量切换装置的一个实施例的结构示意图如图7所示。流量切换装置包括存储器701和处理器702。其中:存储器701可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中流量切换方法的对应实施例中的指令。处理器702耦接至存储器701,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器702用于执行存储器中存储的指令,能够提高流量切换的灵活度。
在一个实施例中,还可以如图8所示,流量切换装置800包括存储器801和处理器802。处理器802通过BUS总线803耦合至存储器801。该流量切换装置800还可以通过存储接口804连接至外部存储装置805以便调用外部数据,还可以通过网络接口806连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够提高流量切换的灵活度。
在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现流量切换方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。
Claims (16)
1.一种流量切换方法,包括:
监听并拦截调用第一应用系统的服务请求,获取待处理请求;
根据所述待处理请求的输入参数匹配预设参数;
在所述待处理请求的输入参数与所述预设参数匹配成功的情况下,获取并执行预设的流量切换规则,其中,所述预设的流量切换规则中所述待处理请求的转发对象包括第二应用系统;
在所述待处理请求的输入参数与所述预设参数匹配不成功的情况下,将所述待处理请求发送给所述第一应用系统处理。
2.根据权利要求1所述的方法,还包括:
在拦截调用第一应用系统的流量后,获取所述待处理请求对应的开关的状态;
在所述开关的状态为匹配切换的情况下,执行所述根据所述待处理请求的输入参数匹配预设参数的操作。
3.根据权利要求2所述的方法,还包括以下至少一项:
在所述开关的状态为全部切换的情况下,将所述待处理请求转发给所述第二应用系统处理;或
在所述开关的状态为关闭的情况下,将所述待处理请求发送给所述第一应用系统处理。
4.根据权利要求1所述的方法,其中,所述根据所述待处理请求的输入参数匹配预设参数包括:
通过动态反射技术,动态收集待处理请求的输入参数,并将收集的输入参数与所述预设参数相匹配。
5.根据权利要求1所述的方法,其中,
所述监听并拦截调用第一应用系统的服务请求,获取待处理请求包括:
监听第一应用系统的接口,确定调用接口的所述服务请求;
拦截所述调用接口的服务请求作为所述待处理请求。
6.根据权利要求5所述的方法,其中,所述根据所述流量切换规则将所述待处理请求转发给所述第一应用系统、所述第二应用系统中的至少一个进行处理包括:
根据所述第一应用系统、第二应用系统的输入参数格式,对所述待处理请求的输入参数执行格式转换,获取转换输入参数;
根据所述待处理请求的输入参数和所述转换输入参数中的至少一项,基于所述流量切换规则将所述待处理请求转发给对应的应用系统,所述应用系统包括所述第一应用系统和所述第二应用系统。
7.根据权利要求6所述的方法,其中,所述预设的流量切换规则包括:
将所述待处理请求发送给所述第二应用系统处理;
将所述待处理请求发送给所述第一应用系统和所述第二应用系统处理;
将所述待处理请求发送给所述第二应用系统处理;在所述第二应用系统处理失败的情况下,则将所述待处理请求发送给所述第一应用系统处理;
或
将所述待处理请求发送给所述第一应用系统和所述第二应用系统分别处理,并将所述第一应用系统与所述第二应用系统的输出结果比较,确定所述第一应用系统与所述第二应用系统的输出结果是否相同。
8.根据权利要求1或5所述的方法,其中,所述监听并拦截调用第一应用系统的服务请求,获取待处理请求包括:
监听所述第一应用系统的服务请求的消息队列;
拦截所述消息队列中的服务请求,获取待处理请求。
9.根据权利要求8所述的方法,还包括:监听所述第二应用系统的服务请求的消息队列,并拦截所述消息队列中的服务请求,获取待处理请求,以便执行所述根据所述待处理请求的输入参数匹配预设参数的操作。
10.根据权利要求8所述的方法,其中,
所述预设的流量切换规则包括:将所述待处理请求转发给所述第二应用系统处理。
11.根据权利要求8所述的方法,其中,所述获取待处理请求包括:
判断被拦截的所述服务请求所属的消息队列是否属于流量切换范围;
若所述服务请求属于所述流量切换范围,则将所述服务请求作为所述待处理请求;
若所述服务请求不属于所述流量切换范围,则退出对所述服务请求的流量切换操作。
12.一种流量切换装置,包括:
请求获取单元,被配置为监听并拦截调用第一应用系统的服务请求,获取待处理请求;
匹配单元,被配置为第一应用系统;
分流单元,被配置为在所述待处理请求的输入参数与所述预设参数匹配成功的情况下,获取并执行预设的流量切换规则,其中,所述预设的流量切换规则中所述待处理请求的转发对象包括第二应用系统;在所述待处理请求的输入参数与所述预设参数匹配不成功的情况下,将所述待处理请求发送给所述第一应用系统处理。
13.根据权利要求10所述的装置,还包括:状态确定单元,被配置为:在所述请求获取单元拦截调用第一应用系统的流量后,获取所述待处理请求对应的开关的状态;
在所述开关的状态为匹配切换的情况下,触发所述匹配单元执行操作;
在所述开关的状态为全部切换的情况下,将所述待处理请求转发给所述第二应用系统处理;或
在所述开关的状态为关闭的情况下,将所述待处理请求发送给所述第一应用系统处理。
14.根据权利要求12所述的装置,其中,所述请求获取单元被配置为执行以下的至少一项:
监听第一应用系统的接口,确定调用接口的所述服务请求,拦截所述调用接口的服务请求,获取待处理请求;或
监听所述第一应用系统的服务请求的消息队列,拦截所述消息队列中的服务请求,获取待处理请求。
15.一种流量切换装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至11任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现权利要求1至11任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210120152.XA CN114465960A (zh) | 2022-02-07 | 2022-02-07 | 流量切换方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210120152.XA CN114465960A (zh) | 2022-02-07 | 2022-02-07 | 流量切换方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114465960A true CN114465960A (zh) | 2022-05-10 |
Family
ID=81412728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210120152.XA Pending CN114465960A (zh) | 2022-02-07 | 2022-02-07 | 流量切换方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465960A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687732B1 (en) * | 1998-09-28 | 2004-02-03 | Inktomi Corporation | Adaptive traffic bypassing in an intercepting network driver |
CN104468551A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 一种基于广告拦截节省流量的方法及装置 |
WO2016090978A1 (zh) * | 2014-12-12 | 2016-06-16 | 华为技术有限公司 | 一种流量切换方法和装置 |
CN106936793A (zh) * | 2015-12-30 | 2017-07-07 | 腾讯科技(深圳)有限公司 | 一种信息拦截处理方法及终端 |
US10489224B1 (en) * | 2018-07-30 | 2019-11-26 | International Business Machines Corporation | Managing application programming interface requests |
CN110875899A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统以及网络系统 |
US20200294057A1 (en) * | 2019-07-17 | 2020-09-17 | Alibaba Group Holding Limited | Business processing method, apparatus, and equipment |
US20210058769A1 (en) * | 2019-08-20 | 2021-02-25 | Verizon Patent And Licensing Inc. | Systems and methods for intercepting network traffic |
CA3162740A1 (en) * | 2019-11-26 | 2021-06-03 | 10353744 Canada Ltd. | Traffic switching methods and devices based on multiple active data centers |
CN113220723A (zh) * | 2021-04-27 | 2021-08-06 | 深圳市云网万店科技有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
CN113961463A (zh) * | 2021-10-28 | 2022-01-21 | 北京沃东天骏信息技术有限公司 | 应用环境切换方法及系统、存储介质和电子设备 |
-
2022
- 2022-02-07 CN CN202210120152.XA patent/CN114465960A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687732B1 (en) * | 1998-09-28 | 2004-02-03 | Inktomi Corporation | Adaptive traffic bypassing in an intercepting network driver |
CN104468551A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 一种基于广告拦截节省流量的方法及装置 |
WO2016090978A1 (zh) * | 2014-12-12 | 2016-06-16 | 华为技术有限公司 | 一种流量切换方法和装置 |
CN106936793A (zh) * | 2015-12-30 | 2017-07-07 | 腾讯科技(深圳)有限公司 | 一种信息拦截处理方法及终端 |
US10489224B1 (en) * | 2018-07-30 | 2019-11-26 | International Business Machines Corporation | Managing application programming interface requests |
CN110875899A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统以及网络系统 |
US20200294057A1 (en) * | 2019-07-17 | 2020-09-17 | Alibaba Group Holding Limited | Business processing method, apparatus, and equipment |
US20210058769A1 (en) * | 2019-08-20 | 2021-02-25 | Verizon Patent And Licensing Inc. | Systems and methods for intercepting network traffic |
CA3162740A1 (en) * | 2019-11-26 | 2021-06-03 | 10353744 Canada Ltd. | Traffic switching methods and devices based on multiple active data centers |
CN113220723A (zh) * | 2021-04-27 | 2021-08-06 | 深圳市云网万店科技有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
CN113961463A (zh) * | 2021-10-28 | 2022-01-21 | 北京沃东天骏信息技术有限公司 | 应用环境切换方法及系统、存储介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
徐拥军;何文春;倪学磊;王琦;郭晓军;: "基于MUSIC接口的CIMISS数据环境故障应急切换设计与实现", 气象科技进展, no. 01, 15 February 2018 (2018-02-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102946325B (zh) | 一种基于软件定义网络的网络诊断方法、系统及设备 | |
CN112671933B (zh) | 一种数据处理方法及系统 | |
WO2017041406A1 (zh) | 一种故障定位方法及装置 | |
CN110457176B (zh) | 用于分布式系统的监控方法、装置、存储介质及电子设备 | |
CN105052076B (zh) | 一种基于云计算的网元管理系统及网元管理方法 | |
CN110166562B (zh) | 数据同步的方法、装置、存储介质和电子设备 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN109639755B (zh) | 关联系统服务器解耦方法、装置、介质及电子设备 | |
JP2006285443A (ja) | オブジェクト救済システム及び方法 | |
CN114465960A (zh) | 流量切换方法、装置和存储介质 | |
CN107729184B (zh) | 一种系统组件服务自愈方法 | |
CN114244678B (zh) | 多协议告警设备接入方法及系统 | |
CN112953792B (zh) | 网络流量监测方法及装置 | |
CN113031569A (zh) | 一种核聚变控制系统的监听方法、系统、终端及介质 | |
CN112134951A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN112714153A (zh) | 基于物联网系统的兼容多种tcp的处理方法及装置 | |
CN111949326A (zh) | 一种基于Activiti的微服务工作流方法 | |
CN106936737B (zh) | 基于网络设备的端口镜像实现方法及装置 | |
CN111752736A (zh) | 一种Linux系统宕机信息的远程收集方法及系统 | |
CN111355598A (zh) | 一种基于物联网的云平台电力电气配置方法及智能云网关 | |
KR960010869B1 (ko) | 분산시스팀에서의 프로세서 상태관리 및 감사 방법 | |
CN115357000B (zh) | 生产参数的下发方法、装置、设备及存储介质 | |
KR100260087B1 (ko) | 전전자 교환기의 프로그램 로딩 방법 | |
JP2004327933A (ja) | プロセスデータ収集装置 | |
CN115629886A (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 |