CN116954976A - 灰度服务故障处理方法、装置、计算机设备及存储介质 - Google Patents

灰度服务故障处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116954976A
CN116954976A CN202310966492.9A CN202310966492A CN116954976A CN 116954976 A CN116954976 A CN 116954976A CN 202310966492 A CN202310966492 A CN 202310966492A CN 116954976 A CN116954976 A CN 116954976A
Authority
CN
China
Prior art keywords
gray
request
service
user
pause
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
Application number
CN202310966492.9A
Other languages
English (en)
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202310966492.9A priority Critical patent/CN116954976A/zh
Publication of CN116954976A publication Critical patent/CN116954976A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请属于运维以及金融科技技术领域,涉及一种灰度服务故障处理方法,包括基于用户终端发送的服务请求确定用户是否为灰度用户;在为灰度用户时,确定是否进行灰度访问;在确定进行灰度访问时,访问对应的灰度版本;接收返回的请求结果,根据请求结果判断是否为正常返回;若为异常返回,将服务请求记录为异常请求;根据异常请求获取异常判断指标,基于异常判断指标确定是否关闭灰度功能;在关闭灰度功能时,根据服务请求访问对应的正常版本。本申请还提供一种灰度服务故障处理装置、计算机设备及存储介质。此外,本申请还涉及区块链技术,服务请求可存储于区块链中。本申请能够实现服务故障自愈,可大幅降低灰度服务故障对业务的影响。

Description

灰度服务故障处理方法、装置、计算机设备及存储介质
技术领域
本申请涉及运维以及金融科技技术领域,尤其涉及一种灰度服务故障处理方法、装置、计算机设备及存储介质。
背景技术
当前信息技术快速发展,软件以及网站的更新迭代速度逐渐加快,随着***版本的每一次迭代升级,往往会伴随着一定的***风险,严重的***异常可能会导致***的业务功能受损。
为保障***迭代对现有业务造成不必要的影响,均会利用灰度发布的模式进行渐进式服务发布,部分用户将提前使用***最新迭代优化的功能,但该方式无法从本质上避免用户受到新功能所带来的未知问题的影响,只能降低影响范围,依旧对该部分灰度用户造成了一定的业务影响,并且后续仍需要相应开发和运维人员进行***配置后才可以恢复功能,导致无法及时修复产生的问题,甚至对时效性较高的业务,尤其是金融领域的业务,例如实时交易反欺诈、广告营销、促销活动以及信贷审批等,将造成不必要的业务损失。
发明内容
本申请实施例的目的在于提出一种灰度服务故障处理方法、装置、计算机设备及存储介质,以解决现有灰度发布过程中新功能产生的***问题无法及时修复,造成业务损失的技术问题。
为了解决上述技术问题,本申请实施例提供一种灰度服务故障处理方法,采用了如下所述的技术方案:
接收用户终端发送的服务请求,基于所述服务请求确定用户是否为灰度用户;
在所述用户为灰度用户时,根据所述服务请求确定是否进行灰度访问;
在确定进行所述灰度访问时,根据所述服务请求访问对应的灰度版本;
接收所述灰度版本处理所述服务请求后返回的请求结果,根据所述请求结果判断是否为正常返回;
若为异常返回,将所述服务请求记录为异常请求;
根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能;
在关闭所述灰度功能时,根据所述服务请求访问对应的正常版本。
进一步的,所述基于所述服务请求确定用户是否为灰度用户的步骤包括:
从所述服务请求中获取请求标识信息;
根据所述请求标识信息,按照预设灰度规则判断所述用户是否为灰度用户。
进一步的,所述根据所述服务请求确定是否进行灰度访问的步骤包括:
根据所述服务请求获取编码标识;
基于所述编码标识,从预设缓存中查询所述用户的暂停灰度信息;
根据所述暂停灰度信息确定是否进行灰度访问。
进一步的,所述根据所述暂停灰度信息确定是否进行灰度访问的步骤包括:
提取所述暂停灰度信息中的历史暂停次数以及每次暂停的暂停时间戳;
确定当前时间戳和距离所述当前时间戳最近的所述暂停时间戳之间的时间差;
在所述历史暂停次数大于等于预设暂停阈值或所述时间差小于预设时间阈值时,停止灰度访问;
在所述历史暂停次数小于预设暂停阈值或所述时间差大于等于预设时间阈值时,进行灰度访问。
进一步的,所述根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能的步骤包括:
获取所述异常请求的异常数量以及每次所述异常请求的异常时间戳;
根据所述异常时间戳统计预设单位时间内的单位异常数量,并将所述单位异常数量与预设数量阈值进行比较;
在所述单位异常数量小于预设数量阈值时,将所述请求结果返回所述用户终端;
在所述单位异常数量大于等于预设数量阈值时,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
进一步的,所述根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能的步骤包括:
根据所述异常请求向预设的令牌桶发送令牌获取请求;
基于所述令牌获取请求从所述令牌桶中获取令牌;
若令牌获取成功,将所述请求结果返回所述用户终端,并相应减少所述令牌桶中的令牌数量;
若令牌获取失败,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
进一步的,在所述暂停灰度功能的步骤之后还包括:
根据所述当前暂停时间戳和所述当前暂停次数进行灰度重试。
为了解决上述技术问题,本申请实施例还提供一种灰度服务故障处理装置,采用了如下所述的技术方案:
接收模块,用于接收用户终端发送的服务请求,基于所述服务请求确定用户是否为灰度用户;
灰度判断模块,用于在所述用户为灰度用户时,根据所述服务请求确定是否进行灰度访问;
灰度访问模块,用于在确定进行所述灰度访问时,根据所述服务请求访问对应的灰度版本;
结果判断模块,用于接收所述灰度版本处理所述服务请求后返回的请求结果,根据所述请求结果判断是否为正常返回;
记录模块,用于若为异常返回,将所述服务请求记录为异常请求;
获取模块,用于根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能;
正常访问模块,用于在关闭所述灰度功能时,根据所述服务请求访问对应的正常版本。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
该计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的灰度服务故障处理方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的灰度服务故障处理方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请通过基于服务请求确定用户是否为灰度用户,在用户为灰度用户时,根据服务请求确定是否进行灰度访问,在确定进行灰度访问时,访问对应的灰度版本,并接收处理服务请求返回的请求结果,若为异常返回,根据异常判断是否关闭灰度功能,如果关闭灰度功能,则根据服务请求访问对应的稳定版本;本申请通过全程***监控灰度用户对灰度功能的访问情况,可以更加精准的定位灰度功能是否正常,在灰度服务故障时,自动进行业务环境切换操作,实现服务故障自愈,可大幅降低灰度服务故障对业务的影响,降低因版本迭代导致的业务损失。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的灰度服务故障处理方法的一个实施例的流程图;
图3是根据本申请的灰度服务故障处理装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请提供了一种灰度服务故障处理方法,可以应用于如图1所示的***架构100中,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的灰度服务故障处理方法一般由服务器/终端设备执行,相应地,灰度服务故障处理装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的灰度服务故障处理方法的一个实施例的流程图,包括以下步骤:
步骤S201,接收用户终端发送的服务请求,基于服务请求确定用户是否为灰度用户。
在本实施例中,服务请求可以是一种HTTP网络请求,可以通过有线连接方式或者无线连接方式发送服务请求。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
服务请求包括但不限于支付请求、代付交易请求、授权请求、身份认证请求等。
在一些可选的实现方式中,上述基于服务请求确定用户是否为灰度用户的步骤包括:
从服务请求中获取请求标识信息;
根据请求标识信息,按照预设灰度规则判断所述用户是否为灰度用户。
服务请求中携带有请求标识信息,请求标识信息包括用户标识信息、请求头信息等,其中,用户标识信息包括用户账号、用户IP地址以及用户Cookie值等;若请求头信息中包含灰度标识,则用户为灰度用户,则发送的服务请求为灰度请求,若请求头信息中不包含灰度标识,用户不是灰度用户,则发送的服务请求为常规请求。
其中,灰度标识可以是预先指定的字符串,在此不作特殊限制。
在本实施例中,可以根据每个软件的需求,预先设置对应的灰度规则。根据预设灰度规则对请求标识信息进行判断,从而确定用户是否为灰度用户。
预设灰度规则包含特定用户账号、特定IP地址、固定Cookie值以及灰度标识等多种规则,在本实施例中,灰度用户可以满足上述预设灰度规则中的一种或多种规则。
通过用户终端发送服务请求,该用户的服务请求经过网关时,通过网关识别服务请求中的请求标识信息,根据预设灰度规则对请求标识信息进行判断,若请求标识信息为包含特定用户账号、特定IP地址、固定Cookie值以及灰度标识中至少一种,则该用户为灰度用户,继续进行灰度功能监控;否则,直接访问稳定环境。
应当理解的是,灰度规则不是特定的,也不局限于本申请所描述的方式,实际应用时,可以根据每个软件的实际需要,以各种不同的方式,预先设定灰度规则,本申请对此并不作限制。
在本实施例中,通过预设灰度规则对用户发送的服务请求进行灰度用户识别,可以提高识别的效率和准确率。
需要强调的是,为进一步保证服务请求的私密和安。全性,上述服务请求还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
步骤S202,在用户为灰度用户时,根据服务请求确定是否进行灰度访问。
在本实施例中,在用户为灰度用户时,需要继续进行灰度判断,以确定该用户是否能够进行灰度访问。
具体的,根据服务请求获取编码标识;基于编码标识,从预设缓存中查询用户的暂停灰度信息;根据暂停灰度信息确定是否进行灰度访问。
服务请求中携带有请求标识信息,请求标识信息包括用户标识信息和请求头信息,其中,用户标识信息包括用户账号,请求头信息包括请求的接口URL(Uniform ResourceLocator,统一资源***),在本实施例中,将用户账号(即用户ID)或接口URL作为唯一的编码标识,将编码标识作为查询索引在预设缓存中进行查询。
预设缓存采用Redis(Remote Dictionary Server)缓存,Redis为远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。利用Redis缓存进行异常存储和查询,数据结构简单,可以实现快速查找和操作数据。
在本实施例中,利用Redis缓存监控灰度服务访问情况,出现异常,则进行记录,生成暂停灰度信息存储于Redis缓存中,根据编码标识作为唯一识别码在Redis缓存中查询相应的暂停灰度信息,根据暂停灰度信息则可以确定是否继续进行灰度访问,如果继续进行灰度访问,则根据服务请求访问灰度环境,否则,直接访问稳定环境。
本实施例通过编码标识在预设缓存查询暂停灰度信息,可以提高查询的效率和准确率,同时,通过暂停灰度信息可以实现访问环境自动切换,保证业务正常执行。
步骤S203,在确定进行灰度访问时,根据服务请求访问对应的灰度版本。
在确定用户可以进行灰度访问之后,根据服务请求中携带的请求的接口URL,访问对应的灰度版本,利用灰度版本为用户继续提供灰度服务,实现了灰度用户可以提前体验升级版本的新功能。
步骤S204,接收灰度版本处理服务请求后返回的请求结果,根据请求结果判断是否为正常返回。
网关向请求的接口URL发送服务请求,灰度版本接收到服务请求后,按照服务请求获取请求数据后,返回请求结果,根据请求结果判断服务请求是否为正常处理,若是,则返回的请求结果为正常结果,即正常返回;否则,返回的请求结果为异常结果,即异常返回。
其中,请求结果包括状态码和请求数据,状态码包括HTTP状态码、业务状态码。HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码;业务状态码是服务端给出的业务描述码,用于客户端明确请求资源的状态情况。不同状态的状态码以代码首位进行区分,例如,HTTP状态码包括临时响应、成功、重定向、请求错误和服务器错误;临时状态的状态码首位为1,成功状态的状态码首位为2,重定向的状态码首位为3,请求错误的状态码首位为4,服务器错误的状态码首位为5等等。
在本实施例中,根据返回的请求结果中的状态码可以判断是否为正常返回,若为正常返回,直接将请求结果返回值用户终端,并持续灰度服务;否则,记录该次异常。
步骤S205,若为异常返回,将服务请求记录为异常请求。
在本实施例中,判断请求结果为异常返回,则该次服务请求为异常请求,将该异常请求记录至Redis缓存中,记录的内容包括编码标识、异常时间戳以及该次的异常次数,可以精准定位灰度服务异常位置。
步骤S206,根据异常请求获取异常判断指标,基于异常判断指标确定是否关闭灰度功能。
其中,异常判断指标为异常请求的数量,即异常数量。异常数量可以利用Redis缓存的令牌桶或预设滑动窗口来确定。
在一些可选的实现方式中,上述根据异常请求获取异常判断指标,基于异常判断指标确定是否关闭灰度功能的步骤包括:
获取异常请求的异常数量以及每次异常请求的异常时间戳;
根据异常时间戳统计预设单位时间内的单位异常数量,并将单位异常数量与预设数量阈值进行比较;
在单位异常数量小于预设数量阈值时,将请求结果返回用户终端;
在单位异常数量大于等于预设数量阈值时,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能。
预设单位时间为滑动窗口,预设单位时间内的异常数量为单位异常数量,在预设单位时间内,单位异常数量大于等于预设数量阈值,则暂停灰度功能;否则,将请求结果返回用户终端。
示例的,预设单位时间为5分钟,预设数量阈值为3,第一次异常请求的异常时间戳为9:00,第二次异常请求的异常时间戳为9:02,第三次异常请求的异常时间戳为9:04,则在第三次异常出现的时候,预设单位时间内出现3次异常,则进行第一次暂停,并记录当前暂停时间戳为9:04以及当前暂停次数为1。
在一些可选的实施例中,每次暂停的时间间隔为2n分钟,其中,n为灰度暂停次数,是大于0的自然数。例如,第一次暂停,暂停时间为2分钟;第二次暂停,暂停时间为4分钟,以此类推。
在本实施例的一些可选的实现方式中,上述根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能的步骤包括:
确定当前暂停次数是否超过预设暂停阈值;
若超过预设暂停阈值,则关闭灰度功能;
若没有超过预设暂停阈值,则比较当前暂停时间戳与上一次暂停时间戳的时间间隔;
在时间间隔小于等于预设时间间隔时,关闭灰度功能。
通过预设单位时间内出现的异常数量来确定是否暂停灰度功能,根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能,可以实现***自行关闭灰度功能,避免灰度服务故障对业务的影响。
在另一些可选的实现方式中,上述根据异常请求获取异常判断指标,基于异常判断指标确定是否关闭灰度功能的步骤包括:
根据异常请求向预设的令牌桶发送令牌获取请求;
基于令牌获取请求从令牌桶中获取令牌;
若令牌获取成功,将请求结果返回用户终端,并相应减少令牌桶中的令牌数量;
若令牌获取失败,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能。
其中,令牌桶是多核环境中网络流量整形(Traffic Shaping)和速率限制(RateLimiting)中最常使用的一种技术。令牌桶涉及两个参数:令牌产生的速率(CommittedInformation Rate,CIR)和令牌桶大小(Committed Burst Size,CBS)。
在本实施例中,利用Redis实现令牌桶,令牌桶大小为可以调控的异常数量阈值,令牌产生的速率表示按照一定速率生产令牌直至桶容量充满。
具体的,当服务请求为异常请求,则从令牌桶中获取令牌,若能成功获取到令牌,则异常数量未超过异常数量阈值,否则,则异常数量已超过异常数量阈值。
在本实施例中,根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能的具体过程同上述滑动窗口方式,在此不再赘述。
通过令牌桶来实现异常数量控制,进而控制是否关闭灰度功能,过程简单,利用Redis原生命令即可实现,同时,减少计算资源的消耗。
步骤S207,在关闭灰度功能时,根据服务请求访问对应的正常版本。
在关闭灰度功能时,进行业务环境切换,即将服务请求转至稳定环境的正常版本进行请求处理,避免灰度服务异常对业务造成影响,确保业务正常进行,减少不必要的业务损失。
在一些可选的实现方式中,在关闭灰度功能后,异步推送关闭灰度的通知,告知相关开发人员灰度服务存在异常,并已自动暂停灰度。其中,通知的方式可以选择IM(InstantMessaging,即时消息)、邮件等,通知的内容包括异常请求的接口URL。
由于***自行关闭灰度功能,虽然避免了对业务的影响,但仍需对灰度功能进行深度分析和优化,因此通过异步通知的方式,可以在不影响业务的情况下,第一时间通知相关开发进行定位问题,以便更加高效地修复异常问题。
本申请通过全程***监控灰度用户对灰度功能的访问情况,可以更加精准的定位灰度功能是否正常,在灰度服务故障时,自动进行业务环境切换操作,实现服务故障自愈,可大幅降低灰度服务故障对业务的影响,降低因版本迭代导致的业务损失。
在本实施例的一些可选的实现方式中,上述根据暂停灰度信息确定是否进行灰度访问的步骤包括:
提取暂停灰度信息中的历史暂停次数以及每次暂停的暂停时间戳;
确定当前时间戳和距离当前时间戳最近的暂停时间戳之间的时间差;
在历史暂停次数大于等于预设暂停阈值或时间差小于预设时间阈值时,停止灰度访问;
在历史暂停次数小于预设暂停阈值或时间差大于等于预设时间阈值时,进行灰度访问。
在本实施例中,预先设置暂停阈值和每次暂停的时间间隔为预设时间阈值,其中,预设时间阈值为2n分钟,当前时间戳为在Redis缓冲查询暂停灰度信息的时间,确定距离当前时间戳最近的暂停时间戳,计算该暂停时间戳与当前时间戳之间的时间差,根据历史暂停次数或时间差确定是否进行灰度访问,具体的,在历史暂停次数大于等于预设暂停阈值或时间差小于预设时间阈值时,则放弃灰度,停止灰度访问;在历史暂停次数小于预设暂停阈值或时间差大于等于预设时间阈值时,进行灰度访问,访问相应的灰度环境。
本申请通过预设暂停阈值或时间差确定是否进行灰度访问,可以实现对灰度服务访问情况的监控,根据访问情况及时切换生产环境,自行屏蔽生产环境的异常情况,保证业务正常进行。
在一些可选的实现方式中,在上述暂停灰度功能的步骤之后还包括:
根据当前暂停时间戳和当前暂停次数进行灰度重试。
具体的,在当前暂停次数没没有超过预设暂停阈值时,比较当前暂停时间戳与上一次暂停时间戳的时间间隔,在时间间隔大于预设时间间隔时,进行灰度重试。
为避免临时的网络波动导致的***误判,影响灰度正常进行,加入重试机制,可以间隔2n分钟后进行灰度重试,并进行n次灰度重试。
示例的,n为暂停次数(即失败次数),初始值为0,若判定接口请求失败,则在原有失败次数的基础上+1,并且有最大值设置,默认最大值为5,即约1小时(21+22+23+24+25=42分钟),超过最大值5后则不再重试。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种灰度服务故障处理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的灰度服务故障处理装置300包括:接收模块301、灰度判断模块302、灰度访问模块303、结果判断模块304、记录模块305、获取模块306以及正常访问模块307。其中:
接收模块301用于接收用户终端发送的服务请求,基于所述服务请求确定用户是否为灰度用户;
灰度判断模块302用于在所述用户为灰度用户时,根据所述服务请求确定是否进行灰度访问;
灰度访问模块303用于在确定进行所述灰度访问时,根据所述服务请求访问对应的灰度版本;
结果判断模块304用于接收所述灰度版本处理所述服务请求后返回的请求结果,根据所述请求结果判断是否为正常返回;
记录模块305用于若为异常返回,将所述服务请求记录为异常请求;
获取模块306用于根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能;
正常访问模块307用于在关闭所述灰度功能时,根据所述服务请求访问对应的正常版本。
需要强调的是,为进一步保证服务请求的私密和安。全性,上述服务请求还可以存储于一区块链的节点中。
基于灰度服务故障处理装置300,通过全程***监控灰度用户对灰度功能的访问情况,可以更加精准的定位灰度功能是否正常,在灰度服务故障时,自动进行业务环境切换操作,实现服务故障自愈,可大幅降低灰度服务故障对业务的影响,降低因版本迭代导致的业务损失。
在本实施例中,接收模块301包括获取子模块和规则判断子模块,获取子模块用于从所述服务请求中获取请求标识信息;规则判断子模块用于根据所述请求标识信息,按照预设灰度规则判断所述用户是否为灰度用户。
通过预设灰度规则对用户发送的服务请求进行灰度用户识别,可以提高识别的效率和准确率。
在一些可选的实现方式中,灰度判断模块302包括编码获取子模块、查询子模块和灰度判断子模块,其中:
编码获取子模块用于根据所述服务请求获取编码标识;
查询子模块用于基于所述编码标识,从预设缓存中查询所述用户的暂停灰度信息;
灰度判断子模块用于根据所述暂停灰度信息确定是否进行灰度访问。
通过编码标识在预设缓存查询暂停灰度信息,可以提高查询的效率和准确率,同时,通过暂停灰度信息可以实现访问环境自动切换,保证业务正常执行。
在本实施例的一些可选的实现方式中,灰度判断子模块包括提取单元、确定单元、停止单元以及进行单元,其中:
提取单元用于提取所述暂停灰度信息中的历史暂停次数以及每次暂停的暂停时间戳;
确定单元用于确定当前时间戳和距离所述当前时间戳最近的所述暂停时间戳之间的时间差;
停止单元用于在所述历史暂停次数大于等于预设暂停阈值或所述时间差小于预设时间阈值时,停止灰度访问;
进行单元用于在所述历史暂停次数小于预设暂停阈值或所述时间差大于等于预设时间阈值时,进行灰度访问。
通过预设暂停阈值或时间差确定是否进行灰度访问,可以实现对灰度服务访问情况的监控,根据访问情况及时切换生产环境,自行屏蔽生产环境的异常情况,保证业务正常进行。
在一些可选的实现方式中,获取模块306包括第一获取子模块、比较子模块、第一返回子模块、第一暂停子模块以及关闭确定子模块,其中:
第一获取子模块用于获取所述异常请求的异常数量以及每次所述异常请求的异常时间戳;
比较子模块用于根据所述异常时间戳统计预设单位时间内的单位异常数量,并将所述单位异常数量与预设数量阈值进行比较;
第一返回子模块用于在所述单位异常数量小于预设数量阈值时,将所述请求结果返回所述用户终端;
第一暂停子模块用于在所述单位异常数量大于等于预设数量阈值时,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
关闭确定子模块用于根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
通过预设单位时间内出现的异常数量来确定是否暂停灰度功能,根据当前暂停时间戳和当前暂停次数,确定是否关闭灰度功能,可以实现***自行关闭灰度功能,避免灰度服务故障对业务的影响。
在一些可选的实现方式中,获取模块306还包括发送子模块、第二获取子模块、第二返回子模块以及第二暂停子模块,其中:
发送子模块用于根据所述异常请求向预设的令牌桶发送令牌获取请求;
第二获取子模块用于基于所述令牌获取请求从所述令牌桶中获取令牌;
第二返回子模块用于若令牌获取成功,将所述请求结果返回所述用户终端,并相应减少所述令牌桶中的令牌数量;
第二暂停子模块用于若令牌获取失败,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
关闭确定子模块用于根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
通过令牌桶来实现异常数量控制,进而控制是否关闭灰度功能,过程简单,利用Redis原生命令即可实现,同时,减少计算资源的消耗。
在一些可选的实现方式中,灰度服务故障处理装置300还包括重试模块,用于根据所述当前暂停时间戳和所述当前暂停次数进行灰度重试。
本实施例能够避免临时的网络波动导致的***误判,影响灰度正常进行。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如灰度服务故障处理方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述灰度服务故障处理方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本实施例通过处理器执行存储在存储器的计算机可读指令时实现如上述实施例灰度服务故障处理方法的步骤,通过全程***监控灰度用户对灰度功能的访问情况,可以更加精准的定位灰度功能是否正常,在灰度服务故障时,自动进行业务环境切换操作,实现服务故障自愈,可大幅降低灰度服务故障对业务的影响,降低因版本迭代导致的业务损失。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的灰度服务故障处理方法的步骤,通过全程***监控灰度用户对灰度功能的访问情况,可以更加精准的定位灰度功能是否正常,在灰度服务故障时,自动进行业务环境切换操作,实现服务故障自愈,可大幅降低灰度服务故障对业务的影响,降低因版本迭代导致的业务损失。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种灰度服务故障处理方法,其特征在于,包括下述步骤:
接收用户终端发送的服务请求,基于所述服务请求确定用户是否为灰度用户;
在所述用户为灰度用户时,根据所述服务请求确定是否进行灰度访问;
在确定进行所述灰度访问时,根据所述服务请求访问对应的灰度版本;
接收所述灰度版本处理所述服务请求后返回的请求结果,根据所述请求结果判断是否为正常返回;
若为异常返回,将所述服务请求记录为异常请求;
根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能;
在关闭所述灰度功能时,根据所述服务请求访问对应的正常版本。
2.根据权利要求1所述的灰度服务故障处理方法,其特征在于,所述基于所述服务请求确定用户是否为灰度用户的步骤包括:
从所述服务请求中获取请求标识信息;
根据所述请求标识信息,按照预设灰度规则判断所述用户是否为灰度用户。
3.根据权利要求1所述的灰度服务故障处理方法,其特征在于,所述根据所述服务请求确定是否进行灰度访问的步骤包括:
根据所述服务请求获取编码标识;
基于所述编码标识,从预设缓存中查询所述用户的暂停灰度信息;
根据所述暂停灰度信息确定是否进行灰度访问。
4.根据权利要求3所述的灰度服务故障处理方法,其特征在于,所述根据所述暂停灰度信息确定是否进行灰度访问的步骤包括:
提取所述暂停灰度信息中的历史暂停次数以及每次暂停的暂停时间戳;
确定当前时间戳和距离所述当前时间戳最近的所述暂停时间戳之间的时间差;
在所述历史暂停次数大于等于预设暂停阈值或所述时间差小于预设时间阈值时,停止灰度访问;
在所述历史暂停次数小于预设暂停阈值或所述时间差大于等于预设时间阈值时,进行灰度访问。
5.根据权利要求1所述的灰度服务故障处理方法,其特征在于,所述根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能的步骤包括:
获取所述异常请求的异常数量以及每次所述异常请求的异常时间戳;
根据所述异常时间戳统计预设单位时间内的单位异常数量,并将所述单位异常数量与预设数量阈值进行比较;
在所述单位异常数量小于预设数量阈值时,将所述请求结果返回所述用户终端;
在所述单位异常数量大于等于预设数量阈值时,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
6.根据权利要求1所述的灰度服务故障处理方法,其特征在于,所述根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能的步骤包括:
根据所述异常请求向预设的令牌桶发送令牌获取请求;
基于所述令牌获取请求从所述令牌桶中获取令牌;
若令牌获取成功,将所述请求结果返回所述用户终端,并相应减少所述令牌桶中的令牌数量;
若令牌获取失败,则暂停灰度功能,并记录当前暂停时间戳以及当前暂停次数;
根据所述当前暂停时间戳和所述当前暂停次数,确定是否关闭灰度功能。
7.根据权利要求5或6所述的灰度服务故障处理方法,其特征在于,在所述暂停灰度功能的步骤之后还包括:
根据所述当前暂停时间戳和所述当前暂停次数进行灰度重试。
8.一种灰度服务故障处理装置,其特征在于,包括:
接收模块,用于接收用户终端发送的服务请求,基于所述服务请求确定用户是否为灰度用户;
灰度判断模块,用于在所述用户为灰度用户时,根据所述服务请求确定是否进行灰度访问;
灰度访问模块,用于在确定进行所述灰度访问时,根据所述服务请求访问对应的灰度版本;
结果判断模块,用于接收所述灰度版本处理所述服务请求后返回的请求结果,根据所述请求结果判断是否为正常返回;
记录模块,用于若为异常返回,将所述服务请求记录为异常请求;
获取模块,用于根据所述异常请求获取异常判断指标,基于所述异常判断指标确定是否关闭灰度功能;
正常访问模块,用于在关闭所述灰度功能时,根据所述服务请求访问对应的正常版本。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的灰度服务故障处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的灰度服务故障处理方法的步骤。
CN202310966492.9A 2023-08-01 2023-08-01 灰度服务故障处理方法、装置、计算机设备及存储介质 Pending CN116954976A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310966492.9A CN116954976A (zh) 2023-08-01 2023-08-01 灰度服务故障处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310966492.9A CN116954976A (zh) 2023-08-01 2023-08-01 灰度服务故障处理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN116954976A true CN116954976A (zh) 2023-10-27

Family

ID=88446161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310966492.9A Pending CN116954976A (zh) 2023-08-01 2023-08-01 灰度服务故障处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116954976A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472617A (zh) * 2023-12-28 2024-01-30 中移(苏州)软件技术有限公司 一种消息处理方法、装置、电子设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472617A (zh) * 2023-12-28 2024-01-30 中移(苏州)软件技术有限公司 一种消息处理方法、装置、电子设备及可读存储介质
CN117472617B (zh) * 2023-12-28 2024-04-09 中移(苏州)软件技术有限公司 一种消息处理方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN112491602B (zh) 行为数据的监控方法、装置、计算机设备及介质
CN111210335A (zh) 用户风险识别方法、装置及电子设备
CN113254445B (zh) 实时数据存储方法、装置、计算机设备及存储介质
CN113535677B (zh) 数据分析查询管理方法、装置、计算机设备及存储介质
CN115941322B (zh) 基于人工智能的攻击检测方法、装置、设备及存储介质
CN115277566B (zh) 数据访问的负载均衡方法、装置、计算机设备及介质
CN116954976A (zh) 灰度服务故障处理方法、装置、计算机设备及存储介质
WO2020232902A1 (zh) 异常对象识别方法、装置、计算设备和存储介质
CN115329381A (zh) 基于敏感数据的分析预警方法、装置、计算机设备及介质
CN111651524B (zh) 利用机器学习模型进行线上预测的辅助实现方法及装置
CN113038396A (zh) 短信通道的调度方法、装置、设备及存储介质
CN114022711A (zh) 工业标识数据缓存处理方法及装置、介质及电子设备
CN114398343A (zh) 数据库异常键处理方法、装置、设备及介质
CN116843395A (zh) 一种业务***的告警分级方法、装置、设备及存储介质
CN117234844A (zh) 云服务器异常管理方法、装置、计算机设备及存储介质
CN116662987A (zh) 业务***监控方法、装置、计算机设备及存储介质
CN116450723A (zh) 数据提取方法、装置、计算机设备及存储介质
CN114637672A (zh) 自动化数据测试方法、装置、计算机设备及存储介质
CN114650252B (zh) 基于企业服务总线的路由方法、装置及计算机设备
CN116915637A (zh) 业务量监控的采样方法、装置、计算机设备及存储介质
CN114844792B (zh) 基于lua语言的动态监控方法、装置、设备及存储介质
CN117271486A (zh) 基于人工智能的数据报送方法、装置、设备及存储介质
CN118041977A (zh) 微服务组件的处理方法、装置、计算机设备及存储介质
CN117331804A (zh) 一种前端页面监控方法、装置、计算机设备及存储介质
CN116701488A (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