CN109710447A - 用于数据访问的方法、装置、介质和计算设备 - Google Patents
用于数据访问的方法、装置、介质和计算设备 Download PDFInfo
- Publication number
- CN109710447A CN109710447A CN201910017570.4A CN201910017570A CN109710447A CN 109710447 A CN109710447 A CN 109710447A CN 201910017570 A CN201910017570 A CN 201910017570A CN 109710447 A CN109710447 A CN 109710447A
- Authority
- CN
- China
- Prior art keywords
- interface
- gray value
- statistics
- failure
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000002159 abnormal effect Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明的实施方式提供了一种用于数据访问的方法。所述方法包括:为第一业务的每个访问请求分配随机数;在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务;获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及在所述统计比率满足第一条件时,更新所述灰度值。本发明的方法在第一接口试运行期间,能够根据运行情况动态切换接口,对于调用第一接口出现的不稳定情况能够快速回滚,从而实现更加科学合理的接口切换。此外,本发明的实施方式提供了一种用于数据访问的装置、介质和计算设备。
Description
技术领域
本发明的实施方式涉及互联网领域,更具体地,本发明的实施方式涉及一种用于数据访问的方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在互联网领域中,为了便于调用方对业务的调用,通常会将具体的调用逻辑封装在一个接口中,调用方通过调用该接口来实现对业务的访问。当接口需要更换时,为了防止线上新开发的接口可能存在的不稳定性,往往需要新接口和旧接口同时存在,并通过设置开关来进行切换。新旧接口的传统切换方式主要是通过一个远程的配置,来实时改变运行中的开关的状态,从而决定每次访问请求所调用的接口,其中开关的状态根据开关的配置值来确定。为了保证线上接口的调用比例的平滑迁移,开关的配置值从单纯的布尔类型数据升级成数值number类型的数据。其中,数值number类型的数据用以表示新旧接口的流量比例(0~100%)。开关的配置值通常是由维护人员手动设置初始值,然后在运行过程中由维护人员根据观察到的新旧接口的运行情况进行手动调整,直到调整后新接口的流量比例达到100%。
可见,现有技术中,开关的配置值是凭借经验确定的,并且开关配置值的修改也是由人工进行的。这就要求在新旧接口切换过程中,维护人员必须持续观察新旧接口的运行情况。这导致运维的人力成本较高。另外,由于开关配置值的修改是人工操作的,因此导致现有技术对新接口调用过程中出现异常的实时响应能力不高。
发明内容
在本上下文中,本发明的实施方式期望提供一种能够根据运行情况动态切换接口的用于数据访问的方法、装置、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种用于数据访问的方法。所述方法包括:为第一业务的每个访问请求分配随机数;在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中,所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务;获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及在所述统计比率满足第一条件时,更新所述灰度值。
在本发明的一个实施例中,所述统计比率包括调用所述第一接口的成功率和/或失败率。所述在所述统计比率满足第一条件时,更新所述灰度值包括:在所述成功率大于等于成功率调整阈值时,增大所述灰度值;和/或在所述失败率大于等于失败率调整阈值时,减小所述灰度值。
在本发明的一个实施例中,在所述成功率大于等于所述成功率调整阈值、同时所述失败率大于等于所述失败率调整阈值时,进行报警。
在本发明的一个实施例中:
所述成功率为:
所述失败率为:
其中:count(total_query)为在所述统计时间间隔内调用所述第一接口的总次数;count(success_query)为在所述统计时间间隔内调用所述第一接口成功的次数;count(failure_queryi)为在所述统计时间间隔内调用所述第一接口时由于第i种异常导致调用所述第一接口失败的次数,αi为第i种异常的权重系数。在本发明的一个实施例中,当调用所述第一接口失败时,获取导致调用所述第一接口失败的异常的种类。在本发明的一个实施例中,所述方法还包括配置每一种异常对应的权重系数。
在本发明的一个实施例中,获取在统计时间间隔内调用所述第一接口成功或失败的统计比率,包括获取在所述统计时间间隔内调用所述第一接口的总次数,以及在所述调用所述第一接口的总次数满足阈值访问次数时,获取所述统计比率。
在本发明的一个实施例中,所述方法还包括设置所述灰度值的上限值,以及当所述灰度值达到所述上限值时,终止更新所述灰度值,并且所述第一业务的任意访问请求均调用所述第一接口。
在本发明的一个实施例中,所述随机数为整数,取值范围为[0,100]。所述灰度值为整数,取值范围为[0,100]。
在本发明的一个实施例中,所述方法还包括配置所述灰度值的初始值,以及配置所述第一条件。
在本发明实施方式的第二方面中,提供了一种用于数据访问的装置。所述装置包括随机数分配模块、调用模块、统计比率获取模块、以及更新模块。随机数分配模块用于为第一业务的每个访问请求分配随机数。调用模块用于在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中,所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务。统计比率获取模块用于获取在统计时间间隔内调用所述第一接口成功或失败的统计比率。更新模块用于在所述统计比率满足第一条件时,更新所述灰度值。
在本发明的一个实施例中,所述统计比率包括调用所述第一接口的成功率和/或失败率。所述更新模块具体用于在所述成功率大于等于成功率调整阈值时,增大所述灰度值,和/或在所述失败率大于等于失败率调整阈值时,减小所述灰度值。
在本发明的一个实施例中,所述装置还包括报警模块。报警模块用于在所述成功率大于等于所述成功率调整阈值、同时所述失败率大于等于所述失败率调整阈值时,进行报警。
在本发明的一个实施例中:
所述成功率为:
所述失败率为:
其中:count(total-query)为在所述统计时间间隔内调用所述第一接口的总次数;count(success-query)为在所述统计时间间隔内调用所述第一接口成功的次数;count(failure-queryi)为在所述统计时间间隔内调用所述第一接口时由于第i种异常导致调用所述第一接口失败的次数,αi为第i种异常的权重系数。在本发明的一个实施例中,所述装置还包括异常种类获取模块。异常种类获取模块用于当调用所述第一接口失败时,获取导致调用所述第一接口失败的异常的种类。在本发明的一个实施例中,所述装置还包括权重系数配置模块。权重系数配置模块用于配置每一种异常对应的权重系数。
在本发明的一个实施例中,统计比率获取模块具体用于,获取在所述统计时间间隔内调用所述第一接口的总次数,以及在所述调用所述第一接口的总次数满足阈值访问次数时,获取所述统计比率。
在本发明的一个实施例中,所述装置还包括灰度上限设置模块以及终止更新模块。灰度上限设置模块用于设置所述灰度值的上限值。终止更新模块用于在所述统计比率满足第一条件时,更新所述灰度值之后,当所述灰度值达到所述上限值时,终止更新所述灰度值。另外,所述调用模块还用于在所述灰度值达到所述上限值后,所述第一业务的任意访问请求均调用所述第一接口。
在本发明的一个实施例中,所述随机数为整数,取值范围为[0,100]。所述灰度值为整数,取值范围为[0,100]。
在本发明的一个实施例中,所述装置还包括接口配置模块。接口配置模块用于配置所述灰度值的初始值,以及配置所述第一条件。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行如上所述的方法。
在本发明实施方式的第四方面中,提供了一种计算设备。所述计算设备包括存储有可执行指令的一个或多个存储器、以及一个或多个处理器。其中,所述一个或多个处理器,执行所述可执行指令,用以实现如上所述的方法。
根据本发明实施方式的方法、装置、介质和计算设备,可以在第一接口的试运行期间,根据运行情况动态切换第一业务的接口,并且,对于第一接口运行中由于各种异常引起的调用失败的问题能够快速回滚,从而能够实现更加科学合理的接口切换。
根据本发明的实施例,可以支持第一接口的多种参数配置(例如,第一接口的灰度值的初始值、上限值、失败率和成功率的计算方式、成功率调整阈值、失败率调整阈值等参数的配置),能够根据实际使用情况来调整第一接口的灰度值,以此来调整对第一接口进行访问的流量比例,可以适应各类应用场景。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的用于数据访问的方法、装置、介质及计算设备的应用场景;
图2示意性地示出了根据本发明一实施例的用于数据访问的方法的流程图;
图3示意性地示出了根据本发明另一实施例的用于数据访问的方法的流程图;
图4示意性地示出了根据本发明又一实施例的用于数据访问的方法的流程图;
图5示意性地示出了根据本发明一实施例的获取统计比率的方法的流程图;
图6示意性地示出了第一接口的一个参数配置界面的示意图;
图7示意性地示出了根据本发明实施例的用于数据访问的方法的一个应用实例的流程图;
图8示意性地示出了根据本发明实施例的用于数据访问的装置的框图;
图9示意性地示出了根据本发明实施例的用于数据访问的程序产品的示意图;以及
图10示意性地示出了根据本发明实施例的用于数据访问的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种用于数据访问的方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语“灰度值”用于衡量和表征对接口进行访问的流量比例。例如,第一接口的灰度值可以用于表征通过第一接口访问第一业务的流量比例。其中,该流量比例可以是通过第一接口访问第一业务的流量占访问第一业务的总流量的比例。在一些实施例中,对第一业务进行访问的流量可以通过对第一业务的访问次数来确定。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现.在新接口试运行期间.如果能够根据调用新接口的成功或失败的比率等,动态地调整调用新接口的流量比例,就能够明显降低现有技术中维护新旧接口切换所占用的人力成本,而且还能够提高接口切换的准确率,以及提高对接口调用情况的实时响应的能力。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1。
图1示意性地示出了根据本发明实施方式的用于数据访问的方法、装置、介质及计算设备的应用场景。
如图1所示,该应用场景包括用户终端11和服务器12。用户终端11和服务器12通过网络连接。该网络可以为局域网、广域网、移动互联网等,可以包括各种连接类型,例如有线、无线通信链路等等。
用户终端11可以是但不限于便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer),也可以为工作站等。用户可以使用用户终端11通过网络与服务器12交互,以接收或发送消息等。用户终端11上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、新闻类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。用户可以在用户终端11上的各种客户端应用进行操作。用户终端11可以响应于用户的操作,通过网络向服务器12发送业务访问请求,并通过网络获取服务器12返回的业务响应数据。
服务器12可以是提供各种服务的服务器,例如对用户利用用户终端11所浏览的网站或者客户端应用提供支持的后台管理服务器(仅为示例)。服务器12可以接收用户终端11通过网络发送的访问请求,并根据该访问请求调用相应的接口来访问对应的业务。在一些情况下,一个业务可能具有多个接口(例如新接口刚上线试运行时会同时存在新旧接口),这时可以为该业务的访问请求分配随机数,并可以根据随机数与新接口的灰度值的比较结果,来确定该访问请求所调用的是新旧接口中的哪一个。
需要说明的是,本发明实施例所提供的用于数据访问的方法可以由服务器12执行。相应地,本发明实施例所提供的用于数据访问的装置、介质或计算设备一般可以设置于服务器12中。或者,本发明实施例所提供的用于数据访问的方法也可以由不同于服务器12且能够与用户终端11和/或服务器12通信的其他服务器或服务器集群执行。相应地,本发明实施例所提供的用于数据访问的装置、介质或计算设备也可以设置于不同于服务器12且能够与用户终端11和/或服务器12通信的其他服务器或服务器集群中。或者,本发明实施例所提供的用于数据访问的方法也可以部分由用户终端11执行,部分由服务器12执行。相应地,本发明实施例所提供的用于数据访问的装置、介质或计算设备也可以部分设置于用户终端11中,部分设置于服务器12中。
应该理解,图1中的用户终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户终端、网络和服务器。
示例性方法
下面结合图1的应用场景,参考图2~图7来描述根据本发明示例性实施方式的用于数据访问的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明一实施例的用于数据访问的方法的流程图。
如图2所示,根据本发明的实施例,该用于数据访问的方法包括操作S210~操作S240。
在操作S210,为第一业务的每个访问请求分配随机数。在一些实施例中,该随机数可以在每个访问请求到达时实时生成的。在另一些实施例中,可以是预先设置并存储大量随机数,并在接收到一个访问请求时从该大量随机数中为该访问请求分配一个随机数。
在操作S220,在该随机数小于第一接口的灰度值时,该访问请求调用第一接口以访问第一业务。其中,该第一业务还具有除第一接口之外的其它接口,在该随机数大于或等于该灰度值时,该访问请求调用其它接口以访问第一业务。第一接口例如可以是第一业务新开发且在试运行中的新接口。该第一业务的其它接口例如可以是该第一业务的原有的旧接口。在另一些实施例中,该第一业务的其它接口可以有两个以上。
根据本发明的实施例,该随机数被设置为整数,取值范围为[0,100],以及该第一接口的灰度值被设置为整数,取值范围为[0,100]。
在操作S230,获取在统计时间间隔内调用第一接口成功或失败的统计比率。该统计时间间隔例如可以是从第一接口开始运行的时间点起算,将每一个持续时间达到预定的时间长度(例如,3600s)的时间段作为一个统计时间间隔。
在操作S240,在该统计比率满足第一条件时,更新第一接口的灰度值。
根据本发明的实施例,该统计比率包括调用第一接口的成功率和/或失败率。在该统计比率满足第一条件时,更新第一接口的灰度值具体包括:在该成功率大于等于成功率调整阈值时,增大该灰度值;或者在该失败率大于等于失败率调整阈值时,减小该灰度值。在一些实施例中,该成功率和失败率可以分别是在该统计时间间隔内访问成功的次数和访问失败的次数与总访问次数的比值。在另一些实施例中,该失败率可以是,对由于不同种类异常引起的失败设置不同的权重系数后,并对由不同异常引起的访问失败的次数进行加权计算,然后再与总访问次数求取比值。
根据本发明的实施例,可以在第一接口的试运行期间,根据运行情况动态切换第一业务的接口,并且,对于第一接口运行中由于各类异常引起的调用失败的问题能够快速回滚。以此方式,不仅能够节约维护接口切换的人力成本,而且还能够提高对接口切换的准确率,以及提高对接口调用情况的实时响应的能力。
根据本发明的实施例,成功率和失败率的计算过程可以是如下所示:
成功率:
失败率:
其中在式(1)和式(2)中:count(total_query)为在该统计时间间隔内调用该第一接口的总次数;count(success_query)为在该统计时间间隔内调用该第一接口成功的次数;count(failure_queryi)为在该统计时间间隔内调用该第一接口时由于第i种异常导致调用该第一接口失败的次数,αi为第i种异常的权重系数;i表示第i种异常;n表示在统计时间间隔内引起调用失败的异常的种类总数。采用式(2)中加权平均的方式计算失败率,可以区分出不同种类的异常在接口切换过程中的重要程度,使得接口切换更为科学合理。
图3示意性地示出了根据本发明另一实施例的用于数据访问的方法的流程图。
如图3所示,根据本发明的另一实施例,该用于数据访问的方法除了操作S210~操作S240以外,还可以包括操作S310、操作S320以及操作S350中的一部分操作或者全部操作。
在操作S310,配置每一种异常对应的权重系数。例如,可以对外部因素引起的异常设置较低的权重系数(例如,0.9),对内部调用逻辑错误引起的异常设置较高的权重系数(例如,1.2)。其中,外部因素引起的异常例如可以是网络请求异常(诸如网络拥堵等)。
操作S310之后可以执行操作S210和操作S220,然而执行操作S320。在操作S320,当调用第一接口失败时,获取导致调用第一接口失败的异常的种类。在得到了导致该失败的异常的种类后,结合操作S310中配置的权重系数,就可以在操作S230中通过上述式(2)计算失败率。
然后在操作S240中,在成功率大于等于成功率调整阈值时,增大第一接口的灰度值,或者在失败率大于等于失败率调整阈值时,减小该灰度值。根据本发明的实施例,每次增大该灰度值时的增大量与每次减小该灰度值时的减小量可以相同也可以不同。并且,如果该成功率大于等于成功率调整阈值的同时,该失败率大于等于失败率调整阈值,则可以同时根据成功率增大该灰度值、并根据失败率减小该灰度值。
之后在操作S350,在该成功率大于等于成功率调整阈值、同时该失败率大于等于失败率调整阈值时,进行报警。一方面,如式(1)和式(2)所示,成功率和失败率之间可以不存在互补关系。另一方面,成功率调整阈值和失败率调整阈值可以是根据各自的侧重因素独立设置的。因此,存在有成功率大于等于成功率调整阈值、同时失败率大于等于失败率调整阈值的情况。当发生这种情况时,根据本发明实施例的方法会及时报警,以提醒维护人员对接口切换情况进行人工排查。
图4示意性地示出了根据本发明又一实施例的用于数据访问的方法的流程图。
如图4所示,根据本发明的又一实施例,该用于数据访问的方法除了操作S210~操作S240以外,还可以包括操作S410、操作S420、操作S430以及操作S440中的部分操作或全部操作。
在操作S410,配置第一接口的灰度值的初始值。
在操作S420,配置第一条件。例如,在第一条件中设置成功率调整阈值和失败率调整阈值二者的至少一个。
在操作S430,设置该灰度值的上限值。例如,灰度值上限设置为100。
在操作S440,当该灰度值达到上限值时,终止更新灰度值,并且此后第一业务的任意访问请求均调用第一接口。其中,操作S440可以在操作S240之后执行。当灰度值达到上限值时,代表第一接口的性能满足独立运行的需求,从而可以允许以后的访问请求均通过第一接口来调用第一业务。在这种情况下,例如第一接口为新接口时,就可以用新接口完全替换旧接口。
根据本发明的实施例,该用于数据访问的方法可以支持各类参数配置(例如,第一接口的灰度值的初始值、上限值、失败率和成功率的计算方式、成功率调整阈值、失败率调整阈值等参数的配置),能够根据实际使用情况来调整第一接口的灰度值,以此来调整对第一接口进行访问的流量比例,可以适应各类应用场景。
图5示意性地示出了根据本发明一实施例的操作S230获取统计比率的方法的流程图。
如图5所示,根据本发明的实施例,操作S230可以包括操作S501和操作S502。
在操作S501,获取在统计时间间隔内调用第一接口的总次数。
在操作S502,在调用第一接口的总次数满足阈值访问次数时,获取该统计比率。以此方式,提高获取的统计比率的统计价值。
图6示意性地示出了第一接口的一个参数配置界面的示意图。
如图6所示,该参数配置界面中示出了在第一接口与其它接口之间动态切换时所需要配置的至少一部分参数。以第一接口为新接口,其他接口具体为旧接口为例,对图6的配置界面中参数的含义说明如下。
接口标识:用于区分接口的唯一标识,不能重复。
说明:用于接口的说明,方便用户查看该接口的详细信息。
接口的灰度值的初始值:灰度值的初始值可以设置为[0,100]中的任意整数,例如可以设置为0,或者极端情况下也可以设置为100。用户可以随时修改接口的灰度值的初始值,以此来调整新接口的初始流量比例。
统计时间间隔:用于配置统计时间间隔的长度。
接口的阈值访问次数:在图6的示例中,在统计时间间隔内达到了该阈值访问次数,才进行成功率和失败率的统计和分析。
通知联系人列表:用于配置接收接口异常报警的接收人信息,或者配置新旧接口切换完成(即,灰度值达到上限值,例如100)时提醒的接收人的信息。
新接口迁移比例配置:
成功率调整阈值:可以配置为0-100之间的值。
调整步长:用于配置每次增大灰度值时的增大量,包含固定步长(在原有灰度值的基础上增加固定的值,直到灰度值达到100为止)、指数(以原有的灰度值乘以固定的值,直到灰度值达到100为止)、自定义(通过用户定义的接口调用方式,来动态调整相应的灰度值的变化量)三种可选类型。
旧接口迁移比例配置:
失败率调整阈值:可以配置为0-100之间的值。
调整步长:用于配置每次减小灰度值时的减小量,包含固定步长(在原有灰度值的基础上减少固定的值,直到灰度值达到0为止),指数(以原有的灰度值除以固定的值,直到灰度值达到0为止),自定义(通过用户定义的接口调用方式,来动态调整相应的灰度值的变化量)三种可选类型。
该配置界面中还包括异常权重配置,包括配置引起调用失败的异常种类、以及每种异常的权重系数。
图7示意性地示出了根据本发明实施例的用于数据访问的方法的一个应用实例的流程图。在该应用实例中,第一接口被示例为新接口,该其他接口被示例为旧接口。图7仅是本发明方法的一个具体应用的示例,不应对本发明实施例的方法带来任何限制。
如图7所示,根据本发明实施例的用于数据访问的方法的一个应用实例具体的流程如下。
步骤1,接收访问请求。
步骤2,为每一个访问请求生成随机数,例如该随机数为[0,100]中的整数。
步骤3,将该随机数与灰度值随进行比较。若随机数小于该灰度值或者若该灰度值等于100则调用新接口;否则,则调用旧接口。当调用旧接口时,按照旧接口的逻辑访问第一业务,正常调用完成后结束。当调用新接口时,按照新接口的逻辑访问第一业务。
步骤4,在图7的示例中,当调用新接口时,若调用新接口成功时,可以按照上述式(1)更新当前的成功率的值。若调用新接口失败,可以上报引起当前调用失败的异常的种类,并根据式(2)更新当前的失败率的值。
对于一个统计时间间隔内的所有访问请求均按如上步骤1~步骤4进行。
步骤5,然后在达到某一个统计时间间隔的终点时,判断在该统计时间间隔中的总访问次数是否达到阈值访问次数。如果没有达到,则继续等待;如果达到了,则获取该统计时间间隔内该新接口的统计比率(包括成功率和失败率中的至少一个)。
步骤6,判断成功率是否达到成功率调整阈值,或者判断失败率是否达到失败率调整阈值。
若成功率达到该成功率调整阈值,则增大该灰度值;若没有,则不改变该灰度值。
或者,若失败率达到失败率调整阈值,则减小该灰度值;若没有,则不改变该灰度值。
再或者,若成功率达到该成功率调整阈值,并且失败率也达到失败率调整阈值,则按照成功率对应的调整步长增大该灰度值,并且按照失败率对应的调整步长减小该灰度值,同时进行报警。即,当在同一个统计时间间隔之内出现同时增加和减少灰度值的情况时,进行报警。
步骤7,若更新该灰度值后,该灰度值增大到上限值100,则说明新旧接口切换完成。此时可以通知维护人员新旧接口切换完成,并且此后任意的访问请求均可以调用新接口。
或者,若更新灰度值后,灰度值减小为0,则报警以通知维护人员进行问题排查。
可以理解,图7仅是示出了根据本发明实施例的用于数据访问的方法的一个具体实例,仅是示例性而非限定性的。本发明的方法可以存在多种变形。在其他实施例中,例如,成功率和失败率的统计,可以在每个统计时间间隔的终点,当总访问次数满足阈值访问次数之后再进行成功率和失败率的计算等。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图8对本发明示例性实施方式的用于数据访问的装置进行说明。
图8示意性地示出了根据本发明实施例的用于数据访问的装置800的框图。
如图8所示,根据本发明的实施例,该用于数据访问的装置800包括随机数分配模块810、调用模块820、统计比率获取模块830、以及更新模块840。
随机数分配模块810用于为第一业务的每个访问请求分配随机数(操作S210)。调用模块820用于在该随机数小于第一接口的灰度值时,该访问请求调用第一接口以访问该第一业务(操作S220),其中,第一业务还具有除第一接口之外的其它接口,在该随机数大于或等于该灰度值时,该访问请求调用其它接口以访问第一业务。统计比率获取模块830用于获取在统计时间间隔内调用第一接口成功或失败的统计比率(操作S230)。更新模块840用于在该统计比率满足第一条件时,更新该灰度值(操作S240)。
根据本发明的一个实施例,统计比率获取模块830具体用于,获取在统计时间间隔内调用第一接口的总次数(操作S501),以及在调用第一接口的总次数满足阈值访问次数时,获取该统计比率(操作S502)。
根据本发明的一个实施例,该统计比率包括调用第一接口的成功率和/或失败率。更新模块840具体用于在该成功率大于等于成功率调整阈值时,增大该灰度值,和/或在该失败率大于等于失败率调整阈值时,减小该灰度值。
根据本发明的一个实施例,装置800还包括报警模块850。报警模块850用于在该成功率大于等于成功率调整阈值、同时该失败率大于等于失败率调整阈值时,进行报警(操作S350)。
根据本发明的一个实施例:
成功率为:
失败率为:
其中:count(total_query)为在统计时间间隔内调用第一接口的总次数;count(success_query)为在统计时间间隔内调用第一接口成功的次数;count(failure_queryi)为在统计时间间隔内调用第一接口时由于第i种异常导致调用第一接口失败的次数,αi为第i种异常的权重系数。
根据本发明的一个实施例,装置800还包括异常种类获取模块860。异常种类获取模块860用于当调用第一接口失败时,获取导致调用第一接口失败的异常的种类(操作S320)。
根据本发明的一个实施例,装置800还包括权重系数配置模块870。权重系数配置模块870用于配置每一种异常对应的权重系数(操作S310)。
根据本发明的一个实施例,装置还800包括灰度上限设置模块880以及终止更新模块890。灰度上限设置模块880用于设置该灰度值的上限值(操作S430)。终止更新模块890用于在该统计比率满足第一条件时,更新该灰度值之后,当该灰度值达到上限值时,终止更新该灰度值(操作S440)。另外,调用模块820还用于在该灰度值达到上限值后,第一业务的任意访问请求均调用第一接口。
根据本发明的一个实施例,该随机数为整数,取值范围为[0,100]。该灰度值为整数,取值范围为[0,100]。
根据本发明的一个实施例,装置800还包括接口配置模块8100。接口配置模块8100用于配置该灰度值的初始值(操作S410),以及配置第一条件(操作S420)。
根据本发明的实施例,该装置800可以用于执行参考图2~图7所示的用于数据访问的方法。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图9对本发明示例性实施方式的用于数据访问的介质进行说明。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于数据访问的方法中的操作,例如,所述计算设备可以执行如图2中所示的操作S210:为第一业务的每个访问请求分配随机数;操作S220:在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中,所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务;操作S230:获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及操作S240:在所述统计比率满足第一条件时,更新所述灰度值。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图9示意性地示出了根据本发明实施例的用于数据访问的程序产品900的示意图。
如图9所示,该程序产品900可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、装置和介质之后,接下来,参考图10对本发明示例性实施方式的适用于数据访问的计算设备进行说明。
本发明实施例还提供了一种计算设备。所述计算设备包括存储有可执行指令的一个或多个存储器、以及一个或多个处理器。其中,所述一个或多个处理器,执行所述可执行指令,用以实现根据本发明实施方式所述的用于数据访问的方法。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于数据访问的方法中的操作。例如,所述处理单元可以执行图2中所示的操作S210:为第一业务的每个访问请求分配随机数;操作S220:在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中,所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务;操作S230:获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及操作S240:在所述统计比率满足第一条件时,更新所述灰度值。
下面参照图10来描述根据本发明实施例的用于数据访问的计算设备1000。如图10所示的计算设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算设备1000以通用计算设备的形式表现。计算设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
总线1030包括数据总线、控制总线和地址总线。
存储单元1020可以包括易失性存储器,例如随机存取存储器(RAM)1021和/或高速缓存存储器1022,还可以进一步包括只读存储器(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1024的程序/实用工具1025,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1000也可以与一个或多个外部设备1040(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/0)接口1050进行。并且,计算设备1000还可以通过网络适配器1030与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与计算设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种用于数据访问的方法,包括:
为第一业务的每个访问请求分配随机数;
在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中:所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务;
获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及
在所述统计比率满足第一条件时,更新所述灰度值。
2.根据权利要求1所述的方法,其中,所述统计比率包括调用所述第一接口的成功率和/或失败率,所述在所述统计比率满足第一条件时,更新所述灰度值,包括:
在所述成功率大于等于成功率调整阈值时,增大所述灰度值;和/或
在所述失败率大于等于失败率调整阈值时,减小所述灰度值。
3.根据权利要求2所述的方法,其中,
所述成功率为:
所述失败率为:
其中:count(total_query)为在所述统计时间间隔内调用所述第一接口的总次数;count(success_query)为在所述统计时间间隔内调用所述第一接口成功的次数;count(failure_queryi)为在所述统计时间间隔内调用所述第一接口时由于第i种异常导致调用所述第一接口失败的次数,αi为第i种异常的权重系数。
4.根据权利要求3所述的方法,还包括:
当调用所述第一接口失败时,获取导致调用所述第一接口失败的异常的种类。
5.根据权利要求4所述的方法,还包括:
配置每一种异常对应的权重系数。
6.根据权利要求1所述的方法,其中,获取在统计时间间隔内调用所述第一接口成功或失败的统计比率,包括:
获取在所述统计时间间隔内调用所述第一接口的总次数;以及
在所述调用所述第一接口的总次数满足阈值访问次数时,获取所述统计比率。
7.根据权利要求1所述的方法,还包括:
设置所述灰度值的上限值;以及
当所述灰度值达到所述上限值时,终止更新所述灰度值,并且所述第一业务的任意访问请求均调用所述第一接口。
8.一种用于数据访问的装置,包括:
随机数分配模块,用于为第一业务的每个访问请求分配随机数;
调用模块,用于在所述随机数小于第一接口的灰度值时,所述访问请求调用所述第一接口以访问所述第一业务,其中:所述第一业务还具有除所述第一接口之外的其它接口,在所述随机数大于或等于所述灰度值时,所述访问请求调用所述其它接口以访问所述第一业务;
统计比率获取模块,用于获取在统计时间间隔内调用所述第一接口成功或失败的统计比率;以及
更新模块,用于在所述统计比率满足第一条件时,更新所述灰度值。
9.一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行根据权利要求1~7任意一项所述的方法。
10.一种计算设备,包括:
一个或多个存储器,存储有可执行指令;
一个或多个处理器,执行所述可执行指令,用以实现根据权利要求1~7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017570.4A CN109710447A (zh) | 2019-01-08 | 2019-01-08 | 用于数据访问的方法、装置、介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017570.4A CN109710447A (zh) | 2019-01-08 | 2019-01-08 | 用于数据访问的方法、装置、介质和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109710447A true CN109710447A (zh) | 2019-05-03 |
Family
ID=66259825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910017570.4A Pending CN109710447A (zh) | 2019-01-08 | 2019-01-08 | 用于数据访问的方法、装置、介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710447A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110290210A (zh) * | 2019-06-27 | 2019-09-27 | 南京冰鉴信息科技有限公司 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
CN110324411A (zh) * | 2019-06-18 | 2019-10-11 | 平安普惠企业管理有限公司 | 一种业务分流方法及装置 |
CN112860271A (zh) * | 2021-03-30 | 2021-05-28 | 中国工商银行股份有限公司 | 一种新旧系统切换的方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653440A (zh) * | 2014-11-13 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种灰度发布方法和装置 |
CN107861810A (zh) * | 2017-09-25 | 2018-03-30 | 平安普惠企业管理有限公司 | 业务分流控制方法、装置、设备及存储介质 |
CN107864175A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 灰度发布控制方法、装置、设备及存储介质 |
CN108280237A (zh) * | 2018-03-01 | 2018-07-13 | 深圳兴路通科技有限公司 | 一种灰度发布方法及装置、系统、计算机存储介质 |
CN109039937A (zh) * | 2018-09-26 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 动态限流方法、装置、计算机设备和存储介质 |
-
2019
- 2019-01-08 CN CN201910017570.4A patent/CN109710447A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653440A (zh) * | 2014-11-13 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种灰度发布方法和装置 |
CN107864175A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 灰度发布控制方法、装置、设备及存储介质 |
CN107861810A (zh) * | 2017-09-25 | 2018-03-30 | 平安普惠企业管理有限公司 | 业务分流控制方法、装置、设备及存储介质 |
CN108280237A (zh) * | 2018-03-01 | 2018-07-13 | 深圳兴路通科技有限公司 | 一种灰度发布方法及装置、系统、计算机存储介质 |
CN109039937A (zh) * | 2018-09-26 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 动态限流方法、装置、计算机设备和存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324411A (zh) * | 2019-06-18 | 2019-10-11 | 平安普惠企业管理有限公司 | 一种业务分流方法及装置 |
CN110324411B (zh) * | 2019-06-18 | 2022-11-18 | 平安普惠企业管理有限公司 | 一种业务分流方法及装置 |
CN110290210A (zh) * | 2019-06-27 | 2019-09-27 | 南京冰鉴信息科技有限公司 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
CN110290210B (zh) * | 2019-06-27 | 2022-05-10 | 南京冰鉴信息科技有限公司 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
CN112860271A (zh) * | 2021-03-30 | 2021-05-28 | 中国工商银行股份有限公司 | 一种新旧系统切换的方法、装置、设备和存储介质 |
CN112860271B (zh) * | 2021-03-30 | 2024-03-29 | 中国工商银行股份有限公司 | 一种新旧系统切换的方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110266716B (zh) | 电网统一服务平台系统 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN102300012B (zh) | 呼叫中心中的一对一匹配 | |
CN102223453B (zh) | 高性能无队列呼叫中心 | |
CN102300009B (zh) | 用于无队列呼叫中心的视图及衡量标准 | |
CN110209496A (zh) | 基于数据处理的任务分片方法、装置及分片服务器 | |
CN109871224A (zh) | 一种基于用户标识的灰度发布方法、系统、介质及设备 | |
CN110309058A (zh) | 业务端测试方法、装置、计算机装置及计算机存储介质 | |
CN108182140A (zh) | 确定和监测计算机资源服务的性能能力 | |
CN107944000B (zh) | 航班运价更新方法、装置、电子设备、存储介质 | |
CN107666525A (zh) | 集群容器ip分配的方法和装置 | |
CN109710447A (zh) | 用于数据访问的方法、装置、介质和计算设备 | |
CN108241799B (zh) | 跨系统访问方法、系统、装置以及计算机可读存储介质 | |
CN109508344A (zh) | 业务数据查询方法、装置、电子设备及存储介质 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN109831524A (zh) | 一种负载均衡处理方法及装置 | |
CN111047425A (zh) | 一种行为预测方法及装置 | |
CN110225104A (zh) | 数据获取方法、装置及终端设备 | |
CN109669835A (zh) | MySQL数据库监控方法、装置、设备及可读存储介质 | |
CN109254914A (zh) | 软件开发包测试方法、系统、计算机装置及可读存储介质 | |
CN109413125A (zh) | 动态调节分布式系统资源的方法和装置 | |
CN110070394A (zh) | 数据处理方法、系统、介质和计算设备 | |
CN109901928A (zh) | 一种推荐云主机配置的方法及云主机 | |
CN114091610A (zh) | 智能决策方法及装置 | |
CN107659460A (zh) | 一种配置api访问量的方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191111 Address after: 310012 G building, 10 floor, A building, Paradise Software Park, 3 West Road, Hangzhou, Xihu District, Zhejiang Applicant after: Alibaba (China) Co.,Ltd. Address before: Hangzhou City, Zhejiang province 310051 Binjiang District River Street No. 1786 Jianghan Road Longsheng Building Room 803 Applicant before: NETEASE KOALA (HANGZHOU) TECH CO.,LTD. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190503 |