CN116204431A - 一种标记扩散服务隔离测试方法、装置、设备及介质 - Google Patents
一种标记扩散服务隔离测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116204431A CN116204431A CN202310180431.XA CN202310180431A CN116204431A CN 116204431 A CN116204431 A CN 116204431A CN 202310180431 A CN202310180431 A CN 202310180431A CN 116204431 A CN116204431 A CN 116204431A
- Authority
- CN
- China
- Prior art keywords
- request
- pressure measurement
- gray
- server
- data processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
本申请公开了一种标记扩散服务隔离测试方法、装置、设备及介质,本申请中预先保存灰度扩散标记,其中,同一用户的各个要素均包括灰度扩散标记,根据数据处理请求和灰度扩散标记确定请求类型,并转发到请求类型对应的服务器进行处理,实现了灰度测试和压测方案的统一。基于灰度扩散标记确定请求类型保证了同一个用户的所有灰度请求到灰度服务器验证。压测数据与正常业务数据分开存储,压测数据写入影子表,正常业务数据写入正式表,当触发压测数据清理时,清理整个影子表,避免了压测数据做删除delete操作,导致数据库节点碎片率提升的问题。
Description
技术领域
本申请涉及系统隔离测试技术领域,尤其涉及一种标记扩散服务隔离测试方法、装置、设备及介质。
背景技术
一般业务系统需要在新业务上线前进行灰度测试,在活动前进行性能测试,即压测,现有技术需要分别做灰度测试和压测两方面的方案设计,缺乏统一的方案。
目前移动端用户对灰度请求的验证有两种方法,一种是基于配置名单的验证,可对包含指定用户id、卡号、证件号等字段的请求进行灰度验证。另一种是基于字段哈希hash比例的验证,可对包含用户id、证件号、卡号等要素的请求按hash比例验证。但基于以上的设计,无论是配置名单还是hash比例都只能灰度测试到有限的请求,因为灰度测试的策略只是针对某几个因素,无法串联同一个用户的所有请求到灰度服务器验证。
而对压测需求,一般都是先做写请求压测后,再利用写请求压测进去的数据做读请求压测,后续的压测基本都是复用这些压测数据。以上的压测方案还存在着以下问题,一方面压测数据和生产数据混在一起,在清理压测数据时可能造成数据误删,无法保证两种数据隔离,另一方面每次清理压测数据做删除delete操作,导致数据库节点碎片率提升。
发明内容
本申请实施例提供了一种标记扩散服务隔离测试方法、装置、设备及介质,用以解决灰度测试和压测方案缺乏统一、灰度测试无法串联同一个用户的所有请求到灰度服务器验证、压测数据做删除delete操作,导致数据库节点碎片率提升的问题。
本申请提供了一种标记扩散服务隔离测试方法,所述方法包括:
接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;
若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;
若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;
若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
另一方面,本申请提供了一种标记扩散服务隔离测试装置,所述装置包括:
确定模块,用于接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;
测试模块,用于若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
再一方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。
再一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。
本申请提供了一种标记扩散服务隔离测试方法、装置、设备及介质,所述方法包括:接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
上述的技术方案具有如下优点或有益效果:
本申请中预先保存灰度扩散标记,其中,同一用户的各个要素均包括灰度扩散标记,根据数据处理请求和灰度扩散标记确定请求类型,并转发到请求类型对应的服务器进行处理,实现了灰度测试和压测方案的统一。基于灰度扩散标记确定请求类型保证了同一个用户的所有灰度请求到灰度服务器验证。压测数据与正常业务数据分开存储,压测数据写入影子表,正常业务数据写入正式表,当触发压测数据清理时,清理整个影子表,避免了压测数据做删除delete操作,导致数据库节点碎片率提升的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的标记扩散服务隔离测试过程示意图;
图2为本申请提供的标记扩散服务隔离测试架构图;
图3为本申请提供的服务隔离和服务器切换流程图;
图4为本申请提供的灰度、压测标记扩散流程图;
图5为本申请提供的标记扩散服务隔离测试装置结构示意图;
图6为本申请提供的电子设备结构示意图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
图1为本申请提供的标记扩散服务隔离测试过程示意图,该过程包括以下步骤:
S101:接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记。
若所述数据处理请求的请求类型为灰度请求,进行S102;若所述数据处理请求的请求类型为压测请求,进行S103;若所述数据处理请求的请求类型为正常请求,进行S104。
S102:若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表。
S103:若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表。
S104:若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
本申请提供的标记扩散服务隔离测试方法应用于电子设备,该电子设备可以是电脑、服务器等设备。
电子设备预先保存灰度扩散标记。灰度扩散标记是通过对同一用户的各个用户要素打上灰度标记得到的。各个用户要素例如用户的手机号、证件号、用户ID等。
电子设备接收数据处理请求,根据数据处理请求和预先保存的灰度扩散标记确定数据处理请求的请求类型。具体过程为将数据处理请求和压测策略中的固定字段进行匹配,若匹配成功,确定所述数据处理请求的请求类型为压测请求;若匹配不成功,将所述数据处理请求分别与灰度测试名单及所述灰度扩散标记进行匹配,若匹配成功,确定所述数据处理请求的请求类型为灰度请求;若匹配不成功,确定所述数据处理请求的请求类型为正常请求。
根据压测策略中的固定字段判断数据处理请求是否为压测请求。若带了这个字段则说明数据处理请求和压测策略中的固定字段匹配成功,确定数据处理请求是压测请求,否则不是压测请求。
如果确定数据处理请求不是压测请求,再将数据处理请求分别与灰度测试名单及灰度扩散标记进行匹配,若匹配成功,确定数据处理请求的请求类型为灰度请求。具体的,先将数据处理请求与灰度测试名单进行匹配,灰度测试名单包括灰度名单或哈希hash比例名单两种。根据灰度名单或哈希hash比例两种方式判断数据处理请求是否为灰度请求。灰度名单是指手机号、证件号、卡号等用户要素(可自行增减),例如直接对手机号131xxxx1234的用户做灰度测试,需要将其写到灰度名单中。当数据处理请求中包含该手机号时,该笔数据处理请求就是灰度请求。hash比例可以理解为对某个字段mod去余。当命中mod取余中的某个固定值时,该笔请求就是灰度请求。如果mod值取10000,当mod取余后为0,可认为该笔请求是灰度请求。如果灰度测试名单匹配成功,确定数据处理请求是灰度请求,将数据处理请求转发到灰度服务器,如果灰度测试名单未匹配成功,再将数据处理请求与灰度扩散标记进行匹配,若匹配成功,也就是预先保存的灰度扩散标记中存在数据处理请求中的要素,则确定数据处理请求的请求类型是灰度请求,将数据处理请求转发到灰度服务器。灰度扩散标记例如是uc_gray_spread:130xxxx9090(手机号)、uc_gray_spread:340xxxxxxxx4460(证件号)等。uc_gray_spread表示灰度标记。
除以上情况之外的数据处理请求的请求类型便认为是正常请求。
若数据处理请求的请求类型为灰度请求,将数据处理请求转发到灰度服务器;在灰度服务器中,根据数据处理请求进行灰度测试,并将灰度测试数据写入正式表。若数据处理请求的请求类型为压测请求,将数据处理请求转发到压测服务器;在压测服务器中,根据数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表。一般通过人工主动触发清理压测数据。若数据处理请求的请求类型为正常请求,将数据处理请求转发到正常服务器;在正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
本申请中预先保存灰度扩散标记,其中,同一用户的各个要素均包括灰度扩散标记,根据数据处理请求和灰度扩散标记确定请求类型,并转发到请求类型对应的服务器进行处理,实现了灰度测试和压测方案的统一。基于灰度扩散标记确定请求类型保证了同一个用户的所有灰度请求到灰度服务器验证。压测数据与正常业务数据分开存储,压测数据写入影子表,正常业务数据写入正式表,当触发压测数据清理时,清理整个影子表,避免了压测数据做删除delete操作,导致数据库节点碎片率提升的问题。
对于业务连续性、连贯性比较敏感的系统来说,将同一个用户的所有请求发到灰度服务器,能够很好地观察系统的运行情况,能很好的做系统监控。如果一个用户的请求分散到不同服务器,不利于做灰度测试。因此本申请通过写请求将灰度标记扩散,能够串联同一个用户的所有行为,将用户的所有请求都发往灰度服务器做灰度验证,对于用户行为关联性要求比较高的系统,该设计保证了灰度的完整性和连贯性。
本申请中,预先保存灰度扩散标记的过程包括:
接收第一注册请求,并判断所述第一注册请求是否为灰度请求,如果是,将所述第一注册请求转发至所述灰度服务器,在所述灰度服务器中,灰度写请求根据灰度标记扩散名单中用户的各个要素进行灰度扩散标记并保存。
电子设备接收到第一注册请求之后,根据灰度名单或哈希hash比例两种方式判断第一注册请求是否为灰度请求。如果是,将第一注册请求转发至灰度服务器,在灰度服务器中,灰度写请求根据灰度标记扩散名单中用户的各个要素进行灰度扩散标记并保存。例如,手机号注册,mobile命中了灰度的hash规则,转发到灰度服务器biz,正常处理业务逻辑后,需要给返回用户信息内的手机号、证件号、用户id等用户要素打上灰度标记,如uc_gray_spread:130xxxx9090、uc_gray_spread:340xxxxxxxx4460,以后通过手机号、证件号等查询用户时也可以命中灰度规则,从而做灰度测试,串联同一个用户的所有动作。
本申请中,所述方法还包括:
若所述压测请求为压测读请求,判断预先保存的压测扩散标记是否失效,若未失效,将所述压测读请求路由到任意服务器;若失效,将所述压测读请求路由到所述压测服务器,将压测数据从所述影子表中读取出来回写到缓存中,并重新回写压测扩散标记到预先保存压测扩散标记的缓存。
例如,根据手机号注册用户,压测服务器会将用户的手机号、证件号、userid等用户要素打上压测标记,如uc_press_spread:180xxxx3520、uc_press_spread:130xxxxxxxx3346。后续通过手机号、证件号查询用户时,都会先检查缓存中压测扩散标记是否失效,若未失效,则命中转发到所有服务器,否则转发到压测服务器去将用户信息从影子表中读取出来回写到缓存中,且压测标记也会回写,后续读请求压测还是会路由到所有服务器。
预先保存压测扩散标记的过程包括:
接收第二注册请求,并判断所述第二注册请求是否为压测请求,如果是,将所述第二注册请求转发至所述压测服务器,在所述压测服务器中,压测写请求根据压测标记扩散名单中用户的各个要素进行压测扩散标记并保存。
电子设备接收到第二注册请求之后,根据某固定字段判断第二注册请求是否为压测请求。若带了这个字段则是压测请求,否则不是。如果是,将第二注册请求转发至压测服务器,在压测服务器中,压测写请求根据压测标记扩散名单中用户的各个要素进行压测扩散标记并保存。
压测扩散标记的作用是当该标记失效时,能够引导“压测读请求”去影子表获取用户信息,回写数据到缓存中,这样又能从缓存中获取用户信息,能够持续压测。若没有压测扩散标记,当缓存中用户数据失效时,无法从影子表获取信息到缓存中。
本申请中,所述方法还包括:
将所述压测数据和所述正常业务数据写入同一个缓存。
此时压测数据和正常业务数据共用一套缓存,压测数据有效模拟了正常业务数据环境,提高压测性能tps(每秒处理的消息数)。
本申请中,所述将所述数据处理请求转发到灰度服务器包括:
控制灰度隔离开关打开,使所述灰度服务器不接收任何请求;控制灰度验证开关打开,并控制灰度隔离开关关闭,使所述灰度服务器只接收灰度请求,将所述数据处理请求转发到灰度服务器。
本申请实现服务隔离和路由,并实现灰度服务器转换成正常服务器,压测服务器转换成正常服务器。
针对灰度请求,设置了两个开关,一个是灰度隔离开关,一个是灰度验证开关。若灰度隔离开关打开,则所有请求都不会路由到灰度服务器上,灰度服务器不接受任何请求。若灰度隔离开关关闭,灰度验证开关打开,则接受灰度请求,若灰度验证开关关闭,则接受所有请求,包括正常请求、压测读请求。通过以上逻辑实现灰度服务器转换成正常服务器。
所述将所述数据处理请求转发到压测服务器包括:
控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,使所述压测服务器只接收压测请求,将所述数据处理请求转发到压测服务器。
相较于灰度请求,压测请求同样设置了两个开关,一个是压测隔离开关,一个是压测切换开关。压测隔离开关打开,压测请求直接拒绝,其他请求也不会向压测服务器路由。若压测隔离开关关闭,压测切换开关开启,压测服务器只接受压测请求,若压测切换开关关闭,则可接受正常请求。
所述将压测数据写入影子表包括:
控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,将数据库由正式表切换为影子表,将压测数据写入所述影子表。
此处,压测区别于灰度场景,压测切换开关除作用于服务器路由之外,还控制动态切换数据库表,完成影子表、正式表的互切。在切换前,需要通过压测隔离开关,控制压测服务器不接受请求。此外,压测请求的路由转发和灰度请求不同,压测写请求一定路由到压测服务器,但读请求的路由则取决于压测标记是否失效,若失效,则路由到压测服务器,否则可路由到所有服务器。
本申请所涉及的写请求和读请求解释如下:
写请求:注册、修改用户欢迎语、修改密码等写数据库的操作。
读请求:根据用户id查询用户、根据手机号查询用户的读库请求,不涉及写数据库。
本申请提供的标记扩散服务隔离测试方法技术效果如下:
(1)方案统一。通过统一框架和方法,使压测方案和灰度方案统一,无需分别设计,且易于维护和管理。
(2)降本增效。通过路由控制,保证上线安全可靠,同时使服务器既可以作为灰度服务器、压测服务器,又可以转换成正常服务器,节省了虚机资源。
(3)业务串联。通过写请求将灰度标记扩散,能够串联同一个用户的所有行为,将用户的所有请求都发往灰度服务器做灰度验证,对于用户行为关联性要求比较高的系统,该设计保证了灰度的完整性和连贯性。
(4)数据隔离。通过将压测数据和正常数据在数据库层隔离,使得数据清理操作简单,无需关心需要删除哪些记录。且保证了数据清理时的安全性,避免误删操作。此外,清除数据时使用truncate操作表,有效避免了数据库碎片率提升。
(5)持久压测。通过写请求将压测标记扩散,当压测标记有效时,会将读请求路由到所有服务器,但当压测标记失效时,会路由读请求到压测服务器,去回写用户信息以及压测标记到缓存中,对于做数据冷热的系统,该设计既保证了数据隔离,又保证了压测性能。
本申请使用标记扩散作用于灰度和压测两种场景。在灰度写请求中,通过灰度标记扩散,使同一个用户后续的所有请求都能路由到灰度服务器,保证灰度验证的连贯性和完整性。在压测写请求中,通过压测标记扩散,使得在做数据冷热的场景下,当缓存中数据失效时,能够路由压测读请求到压测服务器读取影子表回写数据到缓存中,保证读请求持久压测,从而提高压测读请求的性能,有效模拟生产场景。影子表存放的是压测数据,因此回写到缓存中的也是压测数据。本申请设计服务隔离和服务器切换。通过区分压测请求、灰度请求、正常请求并通过预设的开关以及标记,路由转发到对应服务器。并且压测服务器和灰度服务器都可以转换成正常服务器,有效减少资源浪费。
下面结合附图对本申请提供的标记扩散服务隔离测试过程进行详细说明。
图2为本申请提供的标记扩散服务隔离测试架构图,可分为4层,接入层、服务层、策略层和存储层。
接入层负责接受请求,判断是灰度请求、压测请求还是正常请求,并转发请求到对应的服务器;服务层则处理业务逻辑,在灰度服务器中,灰度写请求根据灰度标记扩散名单,在这层将灰度标记扩散,由一个灰度标记,扩散到多个灰度标记,并将灰度标记写到策略层。在压测服务器中,压测写请求根据压测扩散名单,在这层将压测标记扩散,写到策略层。而且,压测写请求写入数据的表是影子表,非正式表,但压测数据和正式数据使用的缓存是同一个;策略层主要记录用户的灰度标记和压测标记,主要用于对灰度和压测做判断和转发。存储层主要分为缓存和数据库,其中数据库包括影子表和正式表。
灰度标记扩散名单是应用内配置的(可自行增减),比如手机号、证件号、卡号等用户要素。当用户请求中返回中有这些字段,则需要将该用户要素扩散。压测扩散名单同样也是应用内配置的(可自行增减),比如手机号、证件号、卡号等用户要素。当用户请求中返回中有这些字段,则需求将该用户要素扩散。
图3为本申请提供的服务隔离和服务器切换流程图,如图3所示,在接入层实现服务隔离和路由,并实现灰度服务器转换成正常服务器,压测服务器转换成正常服务器,则需要接入层和服务层共同控制。
针对灰度请求,设置了两个开关,一个是灰度隔离开关,一个是灰度验证开关。若灰度隔离开关打开,则所有请求都不会路由到灰度服务器上,灰度服务器不接受任何请求。若灰度隔离开关关闭,灰度验证开关打开,则接受灰度请求,若灰度验证开关关闭,则接受所有请求。通过以上逻辑实现灰度服务器转换成正常服务器。
相较于灰度请求,压测请求同样设置了两个开关,一个是压测隔离开关,一个是压测切换开关。压测隔离开关打开,压测请求直接拒绝,其他请求也不会向压测服务器路由。若压测隔离开关关闭,压测切换开关开启,压测服务器只接受压测请求,若压测切换开关关闭,则可接受正常请求。此处,区别于灰度场景,压测切换开关除作用于接入层外,还需要在服务层控制动态切换数据库表,完成影子表、正式表的互切。在切换前,需要通过压测隔离开关,控制压测服务器不接受请求。此外,压测请求的路由转发和灰度请求不同,压测写请求一定路由到压测服务器,但读请求的路由则取决于压测标记是否失效,若失效,则路由到压测服务器,否则可路由到所有服务器。
图4为本申请提供的灰度、压测标记扩散流程图,如图4所示,灰度服务器,除处理正常业务逻辑之外,在灰度写请求中,还需要给灰度用户的用户要素(用户id、手机号、证件号等)打上标记,此即为灰度标记扩散。后续若请求中有用户的以上要素都会作为灰度请求转发到灰度服务器,从而串联用户的所有行为。例如,手机号注册,mobile命中了灰度的hash规则,转发到灰度biz,正常处理业务逻辑后,需要给返回用户信息内的手机号、证件号、用户uid等用户要素打上灰度标记(策略层标记,如uc_gray_spread:130xxxx9090、uc_gray_spread:340xxxxxxxx4460),以后通过手机号、证件号等查询用户时也可以命中灰度规则,从而做灰度验证,串联同一个用户的所有动作。
压测服务器,压测写请求将压测数据写入业务影子表,和生产数据隔离,但共用一套缓存(数据都有失效时间,即数据冷热,缓存中数据失效后需从数据库回写到缓存)。除此之外,压测服务器还会给压测用户的用户要素(用户id、手机号、证件号等)打上标记,此即为压测标记扩散。后续压测读请求报文中有用户的以上要素都会检查压测扩散标记是否失效,若压测标记失效,压测读请求会路由到压测服务器,将压测用户信息回写到缓存中,并重新回写压测扩散标记,后续压测读请求还会重新路由到其他服务器。例如,根据手机号注册用户,压测服务器会将用户的手机号、证件号、userid等用户要素打上压测标记(策略层标记,如uc_press_spread:180xxxx3520、uc_press_spread:130xxxxxxxx3346),后续通过手机号、证件号查询用户时,都会先检查缓存中压测扩散标记是否失效,若未失效,则命中转发到所有服务器,否则转发到压测服务器去将用户信息从影子表中读取出来回写到缓存中,且压测标记也会回写,后续读请求压测还是会路由到所有服务器。
图5为本申请提供的标记扩散服务隔离测试装置结构示意图,包括:
确定模块51,用于接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;
测试模块52,用于若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
所述确定模块51,具体用于将所述数据处理请求和压测策略中的固定字段进行匹配,若匹配成功,确定所述数据处理请求的请求类型为压测请求;若匹配不成功,将所述数据处理请求分别与灰度测试名单及所述灰度扩散标记进行匹配,若匹配成功,确定所述数据处理请求的请求类型为灰度请求;若匹配不成功,确定所述数据处理请求的请求类型为正常请求。
所述装置还包括:
第一保存模块53,用于接收第一注册请求,并判断所述第一注册请求是否为灰度请求,如果是,将所述第一注册请求转发至所述灰度服务器,在所述灰度服务器中,灰度写请求根据灰度标记扩散名单,灰度扩散标记并保存。
所述测试模块52,具体用于控制灰度隔离开关打开,使所述灰度服务器不接收任何请求;控制灰度验证开关打开,并控制灰度隔离开关关闭,使所述灰度服务器只接收灰度请求,将所述数据处理请求转发到灰度服务器。
所述测试模块52,具体用于控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,使所述压测服务器只接收压测请求,将所述数据处理请求转发到压测服务器。
所述测试模块52,具体用于控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,将数据库由正式表切换为影子表,将压测数据写入所述影子表。
所述测试模块52,还用于将所述压测数据和所述正常业务数据写入同一个缓存。
所述测试模块52,还用于若所述压测请求为压测读请求,判断预先保存的压测扩散标记是否失效,若未失效,将所述压测读请求路由到任意服务器;若失效,将所述压测读请求路由到所述压测服务器,将压测数据从所述影子表中读取出来回写到缓存中,并重新回写压测扩散标记到预先保存压测扩散标记的缓存
所述装置还包括:
第二保存模块54,用于接收第二注册请求,并判断所述第二注册请求是否为压测请求,如果是,将所述第二注册请求转发至所述压测服务器,在所述压测服务器中,压测写请求根据压测标记扩散名单中用户的各个要素进行压测扩散标记并保存。
本申请还提供了一种电子设备,如图6所示,包括:处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行以上任一方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
本申请还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现以上任一方法步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种标记扩散服务隔离测试方法,其特征在于,所述方法包括:
接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;
若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;
若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;
若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
2.如权利要求1所述的方法,其特征在于,所述根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型包括:
将所述数据处理请求和压测策略中的固定字段进行匹配,若匹配成功,确定所述数据处理请求的请求类型为压测请求;若匹配不成功,将所述数据处理请求分别与灰度测试名单及所述灰度扩散标记进行匹配,若匹配成功,确定所述数据处理请求的请求类型为灰度请求;若匹配不成功,确定所述数据处理请求的请求类型为正常请求。
3.如权利要求1所述的方法,其特征在于,预先保存灰度扩散标记的过程包括:
接收第一注册请求,并判断所述第一注册请求是否为灰度请求,如果是,将所述第一注册请求转发至所述灰度服务器,在所述灰度服务器中,灰度写请求根据灰度标记扩散名单中用户的各个要素进行灰度扩散标记并保存。
4.如权利要求1所述的方法,其特征在于,所述将所述数据处理请求转发到灰度服务器包括:
控制灰度隔离开关打开,使所述灰度服务器不接收任何请求;控制灰度验证开关打开,并控制灰度隔离开关关闭,使所述灰度服务器只接收灰度请求,将所述数据处理请求转发到灰度服务器。
5.如权利要求1所述的方法,其特征在于,所述将所述数据处理请求转发到压测服务器包括:
控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,使所述压测服务器只接收压测请求,将所述数据处理请求转发到压测服务器。
6.如权利要求1所述的方法,其特征在于,所述将压测数据写入影子表包括:
控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,将数据库由正式表切换为影子表,将压测数据写入所述影子表。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述压测数据和所述正常业务数据写入同一个缓存。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述压测请求为压测读请求,判断预先保存的压测扩散标记是否失效,若未失效,将所述压测读请求路由到任意服务器;若失效,将所述压测读请求路由到所述压测服务器,将压测数据从所述影子表中读取出来回写到缓存中,并重新回写压测扩散标记到预先保存压测扩散标记的缓存。
9.如权利要求8所述的方法,其特征在于,预先保存压测扩散标记的过程包括:
接收第二注册请求,并判断所述第二注册请求是否为压测请求,如果是,将所述第二注册请求转发至所述压测服务器,在所述压测服务器中,压测写请求根据压测标记扩散名单中用户的各个要素进行压测扩散标记并保存。
10.一种标记扩散服务隔离测试装置,其特征在于,所述装置包括:
确定模块,用于接收数据处理请求,根据所述数据处理请求和预先保存的灰度扩散标记确定所述数据处理请求的请求类型,其中,同一用户的各个要素均包括所述灰度扩散标记;
测试模块,用于若所述数据处理请求的请求类型为灰度请求,将所述数据处理请求转发到灰度服务器;在所述灰度服务器中,根据所述数据处理请求进行灰度测试,并将灰度测试数据写入正式表;若所述数据处理请求的请求类型为压测请求,将所述数据处理请求转发到压测服务器;在所述压测服务器中,根据所述数据处理请求进行压测,并将得到的压测数据写入影子表;当触发压测数据清理时,清理所述影子表;若所述数据处理请求的请求类型为正常请求,将所述数据处理请求转发到正常服务器;在所述正常服务器中正常处理业务,并将得到的正常业务数据写入正式表。
11.如权利要求10所述的装置,其特征在于,所述确定模块,具体用于将所述数据处理请求和压测策略中的固定字段进行匹配,若匹配成功,确定所述数据处理请求的请求类型为压测请求;若匹配不成功,将所述数据处理请求分别与灰度测试名单及所述灰度扩散标记进行匹配,若匹配成功,确定所述数据处理请求的请求类型为灰度请求;若匹配不成功,确定所述数据处理请求的请求类型为正常请求。
12.如权利要求10所述的装置,其特征在于,所述装置还包括:
第一保存模块,用于接收第一注册请求,并判断所述第一注册请求是否为灰度请求,如果是,将所述第一注册请求转发至所述灰度服务器,在所述灰度服务器中,灰度写请求根据灰度标记扩散名单中用户的各个要素进行灰度扩散标记并保存。
13.如权利要求10所述的装置,其特征在于,所述测试模块,具体用于控制灰度隔离开关打开,使所述灰度服务器不接收任何请求;控制灰度验证开关打开,并控制灰度隔离开关关闭,使所述灰度服务器只接收灰度请求,将所述数据处理请求转发到灰度服务器。
14.如权利要求10所述的装置,其特征在于,所述测试模块,具体用于控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,使所述压测服务器只接收压测请求,将所述数据处理请求转发到压测服务器。
15.如权利要求10所述的装置,其特征在于,所述测试模块,具体用于控制压测隔离开关打开,使所述压测服务器不接收任何请求;控制压测切换开关打开,并控制压测隔离开关关闭,将数据库由正式表切换为影子表,将压测数据写入所述影子表。
16.如权利要求10所述的装置,其特征在于,所述测试模块,还用于将所述压测数据和所述正常业务数据写入同一个缓存。
17.如权利要求10所述的装置,其特征在于,所述测试模块,还用于若所述压测请求为压测读请求,判断预先保存的压测扩散标记是否失效,若未失效,将所述压测读请求路由到任意服务器;若失效,将所述压测读请求路由到所述压测服务器,将压测数据从所述影子表中读取出来回写到缓存中,并重新回写压测扩散标记到预先保存压测扩散标记的缓存。
18.如权利要求17所述的装置,其特征在于,所述装置还包括:
第二保存模块,用于接收第二注册请求,并判断所述第二注册请求是否为压测请求,如果是,将所述第二注册请求转发至所述压测服务器,在所述压测服务器中,压测写请求根据压测标记扩散名单中用户的各个要素进行压测扩散标记并保存。
19.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9任一项所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180431.XA CN116204431A (zh) | 2023-02-28 | 2023-02-28 | 一种标记扩散服务隔离测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180431.XA CN116204431A (zh) | 2023-02-28 | 2023-02-28 | 一种标记扩散服务隔离测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116204431A true CN116204431A (zh) | 2023-06-02 |
Family
ID=86518958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310180431.XA Pending CN116204431A (zh) | 2023-02-28 | 2023-02-28 | 一种标记扩散服务隔离测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116204431A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781591A (zh) * | 2023-08-23 | 2023-09-19 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
-
2023
- 2023-02-28 CN CN202310180431.XA patent/CN116204431A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781591A (zh) * | 2023-08-23 | 2023-09-19 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
CN116781591B (zh) * | 2023-08-23 | 2024-01-02 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11614867B2 (en) | Distributed storage system-based data processing method and storage device | |
US10073916B2 (en) | Method and system for facilitating terminal identifiers | |
CN111475376B (zh) | 处理测试数据的方法、装置、计算机设备和存储介质 | |
CN110162424A (zh) | 故障处理方法、系统、装置及存储介质 | |
CN105897947A (zh) | 移动终端的网络访问方法和装置 | |
CN111611140B (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN111752770A (zh) | 服务请求的处理方法、系统、计算机设备和存储介质 | |
CN116204431A (zh) | 一种标记扩散服务隔离测试方法、装置、设备及介质 | |
CN112437148A (zh) | 业务请求的处理方法、装置、业务服务器及系统 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN105743725A (zh) | 一种测试应用程序的方法和装置 | |
CN108345508B (zh) | 接口调用测试方法和装置 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN111291300B (zh) | 网页数据处理方法、装置、网页系统及服务器 | |
CN108632085A (zh) | 灰度用户管理方法、装置、平台及存储介质 | |
CN112215593A (zh) | 一种支付方法、装置、服务器及存储介质 | |
CN109951549B (zh) | 网络页面的访问方法、装置及计算机可读存储介质 | |
CN110891267A (zh) | 一种基于区块链的业务处理方法和运营商网络节点 | |
CN114390105B (zh) | 基于测试的企业用户分流方法及设备 | |
CN110716730A (zh) | 灰度发布方法、装置、设备及计算机可读存储介质 | |
CN116017462A (zh) | 一种sim卡授权管理方法、装置以及系统 | |
CN114003293B (zh) | 接口管理方法、装置、电子设备以及可读存储介质 | |
CN114221807B (zh) | 访问请求处理方法、装置、监控设备及存储介质 | |
CN115955459A (zh) | 域名切换方法及装置、计算机可读存储介质 | |
CN112583606B (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 |