具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
为了解决上述问题,本说明书实施例提供一种基于影子链路实现沙箱调试的方法,如下,对该方法进行说明。
首先,请参见图1,为实现本说明书实施例提出的基于影子链路实现沙箱调试的方法的一种应用场景示意图。
如图1所示,包括客户端110、线上服务器集群120,本领域技术人员可以理解的是,该线上服务器集群120可包括多台服务器(图1中并未示出),在图1中,根据该线上服务器集群120所实现的功能,从功能角度示出了该线上服务器集群所包括的主要***架构,包括:***平台、网关、业务***、数据库。其中,客户端110可通过***平台与线上服务器集群120进行直接交互,例如可以通过***平台向线上服务器集群申请用户账号、申请网关秘钥、登录用户账号、请求业务处理等操作;网关则可对业务流量进行控制或分流;业务***则可对用户所请求的具体业务进行业务处理,例如进行业务接口调用;数据库则可用于存储业务处理所产生的业务数据。
如下,在上述图1所示应用场景的基础上,示出下述实施例对基于影子链路实现沙箱调试的方法进行说明。
实施例一:
请参见图2,为本说明书一示例性实施例提供的一种基于影子链路实现沙箱调试的方法的实施例流程图,该方法包括以下步骤:
步骤202:接收客户端发送的业务接口调用请求,其中,业务接口调用请求至少携带有待调用业务接口的接口信息、调用者标识,该调用者标识用于标识客户端上登录用户的用户身份,该用户身份为下述其中一项:沙箱测试用户、真实线上用户。
在本说明书实施例中,图1所示例的线上服务器集群120可同时处理正常的业务接口调用请求与用于沙箱测试的业务接口调用请求,为了区分该两类业务接口调用请求,业务接口调用请求除携带有待调用业务接口的接口信息(例如接口名称)以外,还可以携带有调用者标识,该调用者标识用于标识客户端上登录用户的用户身份,其中,该用户身份可以为沙箱测试用户,或者真实线上用户。
在本说明书实施例中,上述待调用业务接口已签约,即开通有调试权限,从而使得沙箱测试用户可以对该待调用业务接口进行调试。
在一实施例中,上述调用者标识可以包括客户端上登录用户的用户账号,本领域技术人员可以理解的是,该用户账号为沙箱测试用户预先申请的,具体的申请过程,请参见下述实施例二中的相关描述,在此先不作详述。
基于上述描述可知,通过调用者标识可区分出沙箱测试用户与真实线上用户,那么,沙箱测试用户与真实线上用户各自的用户账号可以有所区别。在一实施例中,沙箱测试用户的用户账号中可以包括指定格式的字符串,例如沙箱测试用户的用户账号中包括“@test”这一指定格式的字符串,又例如沙箱测试用户的用户账号中最末两位为字母。
步骤204:对业务接口调用请求中携带的调用者标识进行识别。
基于上述步骤202中的相关描述,在本步骤中,则可以识别接收到的业务接口调用请求中携带的用户账号中是否包括指定格式的字符串,若包括指定格式的字符串,则可以得出用于表示客户端上登录用户的用户身份为沙箱测试用户的识别结果;反之,若不包括指定格式的字符串,则得出用于表示客户端上登录用户的用户身份为真实线上用户的识别结果。
基于图1所示例的应用场景,可以由图1所示例的网关执行该步骤。
步骤206:若识别结果表示客户端上登录用户的用户身份为沙箱测试用户,且所述待调用业务接口已签约,则利用预先配置的影子链路调用该待调用业务接口,其中,影子链路为模拟于真实线上链路,且与该真实线上链路相互隔离的链路。
在本说明书实施例中,若步骤204的识别结果表示客户端上登录用户的用户身份为沙箱测试用户,且待调用业务接口已签约时,则可以利用预先配置的影子链路调用该待调用业务接口。
本说明书实施例中的影子链路模拟真实线上链路,具有真实线上链路的主要功能和主要逻辑,其虽然也是基于线上服务集群实现的,但其与真实线上链路是相互隔离的,从而可以避免污染真实的线上数据。
基于图1所示例的应用场景,可以由图1所示例的业务***执行该步骤。
需要说明的是,在本说明书实施例中,为了实现测试数据与真实线上数据的完全隔离,可以将利用影子链路调用待调用业务接口所产生的调用数据存储于预先配置的影子数据表中,该影子数据表可与用于存储真实线上调用数据的线上数据表相互隔离。
在一实施例中,可以通过将两类数据表存放于不同的数据库,以实现两者的相关隔离。
在另一实施例中,可以通过将两类数据表存放与同一数据库,但以不同表的形式实现两者的相关隔离。
步骤208:向客户端返回针对待调用业务接口的调用结果。
此外,在本说明书实施例中,为了避免线上服务器集群120过多处理来自沙箱测试用户的业务接口调用请求,而影响真实的线上业务,提出在线上服务器集群120中布设监控***和运维***(图1中未示出),以通过该监控***和运维***对来自沙箱测试用户的业务接口调用请求进行安全控制或切流处理工作,具体的,可以针对接收到的,沙箱测试用户所登录的客户端发送的业务接口调用请求进行统计;若统计结果满足预先设置的控制条件,则当新接收到沙箱测试用户所登录的客户端发送的业务接口调用请求时,按照预先设置的控制策略处理该新接收到的业务接口调用请求。
在一实施例中,上述预先设置的控制条件可以为:预设时间段内,接收到的来自沙箱测试用户的业务接口调用请求的数量达到一定数量级别,例如达到预设阈值。
在一实施例中,上述预先设置的控制策略可以为:在指定时间段内,拒绝处理新接收到的来自沙箱测试用户的业务接口调用请求;或者是,延时处理新接收到的来自沙箱测试用户的业务接口调用请求。
本领域技术人员可以理解的是,上述关于预先设置的控制条件、预先设置的控制策略的相关描述仅仅作为举例,在实际应用中,预先设置的控制条件、预先设置的控制策略还可以为其他形式,本说明书实施例对此不作限制。
本说明书实施例所提供的技术方案,通过接收客户端发送的业务接口调用请求,其中,该业务接口调用请求至少携带有待调用业务接口的接口信息、调用者标识,该调用者标识用于标识客户端上登录用户的用户身份,该用户身份为沙箱测试用户,或者是真实线上用户;对业务接口调用请求中携带的调用者标识进行识别;若识别结果表示客户端上登录用户的用户身份为沙箱测试用户,且待调用业务接口已签约,则利用预先配置的影子链路调用待调用业务接口,其中,影子链路模拟于真实线上链路,且与真实线上链路相互隔离;向客户端返回针对所述待调用业务接口的调用结果,实现了利用线上环境和网络来提供沙箱测试服务,从而提高了沙箱测试服务的稳定性,也就有效保证了基于沙箱测试服务进行业务接口调试的效果。
至此,完成实施例一的相关描述。
实施例二:
首先说明,该实施例二在上述实施例一的基础上,对沙箱测试用户进行用户注册至完成业务接口调试的完整流程进行说明。
请参见图3,为本说明书一示例性实施例提供的另一种基于影子链路实现沙箱调试的方法的实施例流程图,该方法包括以下步骤:
步骤302:接收客户端发送的沙箱测试账号申请请求,该沙箱测试账号申请请求用于为沙箱测试用户申请用户账号,并根据该沙箱测试账号申请请求向客户端返回用户账号,其中,所返回的用户账号包括指定格式的字符串。
本说明书实施例中,沙箱测试用户可通过图1所示例的客户端110与线上服务器集群120中的***平台,向线上服务器集群120发送沙箱测试账号申请请求,线上服务器集群120中的业务***,则对该沙箱测试账号申请请求进行处理,具体的,根据该沙箱测试账号申请请求生成用户账号,并通过***平台向客户端110返回该用户账号。
需要说明的是,该返回的用户账号中包括指定格式的字符串,以标识该返回的用户账号属于沙箱测试用户。
至于业务***根据沙箱测试账号申请请求生成用户账号的具体过程,本领域技术人员可以参见现有技术中的相关描述,本说明书实施例对此不再详述。
步骤304:接收客户端发送的网关秘钥申请请求,该网关秘钥申请请求用于为沙箱测试用户申请网关秘钥,并根据该网关秘钥申请请求向客户端返回网关秘钥。
在本说明书实施例中,为了保障后续业务接口调用的安全性,沙箱测试用户还可以通过图1所示例的客户端110与线上服务器集群120中的***平台,向线上服务器集群120发送网关秘钥申请请求,该网关秘钥申请请求用于为该沙箱测试用户申请网关秘钥,线上服务器集群120中的网关,则对该网关秘钥申请请求进行处理,具体的,根据该网关秘钥申请请求生成网关秘钥,并通过***平台向客户端110返回该网关秘钥。
至于网关根据该网关秘钥申请请求生成网关秘钥的具体过程,本领域技术人员可以参见现有技术中的相关描述,本说明书实施例对此不再详述。
步骤306:接收客户端发送的业务接口测试请求,其中,业务接口测试请求至少携带有待调用业务接口的接口信息。
在本说明书实施例中,沙箱测试用户可利用上述步骤302与步骤304中申请到的用户账号登录线上服务器集群120的***平台,通过该***平台向线上服务器集群120发送业务接口测试请求,该业务接口测试请求至少携带有待调用业务接口的接口信息,例如接口名称。
步骤308:确定待调用业务接口是否已签约,若未签约,则执行步骤310;若已签约,则执行步骤312;
在本说明书实施例中,在对线上服务器集群120进行预配置的过程中,可预先对某些业务接口进行签约,也即开通该业务接口的调试权限。
后续,在接收到业务接口测试请求后,可首先判断该业务接口测试请求所指示的待调用业务接口是否已签约,若是,则可以直接执行步骤312;若未签约,则执行步骤310。
步骤310:对待调用业务接口进行签约,以开通待调用业务接口的调试权限。
步骤312:向客户端返回用于表示允许对待调用业务接口进行调试的申请结果。
步骤314:接收客户端发送的业务接口调用请求,对业务接口调用请求中携带的调用者标识进行识别,若识别结果表示客户端上登录用户的用户身份为沙箱测试用户,则利用预先配置的影子链路调用待调用业务接口,向客户端返回针对待调用业务接口的调用结果。
在本说明书实施例中,客户端110接收到线上服务器集群120返回的用于表示允许对待调用业务接口进行调试的申请结果后,可将该申请结果显示给沙箱测试用户,以便沙箱测试用户继续通过客户端110与线上服务器集群120的***平台向线上服务器集群120发送业务接口调用请求,线上服务器集群120基于该业务接口调用请求所做的处理则可参见上述实施例一中的描述,在此不再重复描述。
需要说明的是,该业务接口调用请求中还可携带有上述步骤204中申请得到的网关秘钥,那么,线上服务器集群120中的网关则首先对该业务接口调用请求中携带的网关秘钥进行校验,在校验通过后,再转业务***的影子链路调用待调用业务接口。
上述实施例所提供的技术方案,实现了利用线上环境和网络来提供沙箱测试服务,从而提高了沙箱测试服务的稳定性,也就有效保证了基于沙箱测试服务进行业务接口调试的效果。
至此,完成实施例二的相关描述。
相应于上述方法实施例,本说明书实施例还提供一种基于影子链路实现沙箱调试的装置,请参见图4,为本说明书一示例性实施例提供的一种基于影子链路实现沙箱调试的装置的实施例框图,该装置可以包括:第一接收模块41、标识识别模块42、接口调用模块43,以及第一返回模块44。
其中,第一接收模块41,可以用于接收客户端发送的业务接口调用请求,其中,所述业务接口调用请求至少携带有待调用业务接口的接口信息、调用者标识,所述调用者标识用于标识所述客户端上登录用户的用户身份,所述用户身份为下述其中一项:沙箱测试用户、真实线上用户;
标识识别模块42,可以用于对所述业务接口调用请求中携带的所述调用者标识进行识别;
接口调用模块43,可以用于若识别结果表示所述客户端上登录用户的用户身份为沙箱测试用户,且所述待调用业务接口已签约,则利用预先配置的影子链路调用所述待调用业务接口,其中,所述影子链路模拟于真实线上链路,且与所述真实线上链路相关隔离;
第一返回模块44,可以用于向所述客户端返回针对所述待调用业务接口的调用结果。
在一实施例中,所述装置还可以包括(图4中未示出):
第二接收模块,用于接收客户端发送的业务接口测试请求,其中,所述业务接口测试请求至少携带有待调用业务接口的接口信息;
确定模块,用于确定所述待调用业务接口是否已签约;
签约模块,用于若所述待调用业务接口未签约,则对所述待调用业务接口进行签约,以开通所述待调用业务接口的调试权限。
在一实施例中,所述装置还可以包括(图4中未示出):
存储模块,用于将利用所述影子链路调用所述待调用业务接口所产生的调用数据存储于预先配置的影子数据表;
其中,所述影子数据表与用于存储真实线上调用数据的线上数据表相互隔离。
在一实施例中,所述装置还可以包括(图4中未示出):
统计模块,用于针对接收到的,沙箱测试用户所登录的客户端发送的业务接口调用请求进行统计;
处理模块,用于若统计结果满足预先设置的控制条件,则当新接收到的沙箱测试用户所登录的客户端发送的业务接口调用请求时,按照预先设置的控制策略处理所述新接收到的业务接口调用请求。
在一实施例中,所述调用者标识包括:用户账号;
所述标识识别模块42具体用于:
识别所述业务接口调用请求中携带的用户账号中是否包括指定格式的字符串;若所述用户账号中包括指定格式的字符串,则得出用于表示所述客户端上登录用户的用户身份为沙箱测试用户的识别结果;若所述用户账号中不包括指定格式的字符串,则得出用于表示所述客户端上登录用户的用户身份为真实线上用户的识别结果。
在一实施例中,所述业务接口调用请求还携带有网关秘钥;
所述接口调用模块43具体用于:
对所述业务接口调用请求中携带的网关秘钥进行校验;若校验通过,则利用预先配置的影子链路调用所述待调用业务接口。
在一实施例中,所述装置还可以包括(图4中未示出):
第三接收模块,用于接收客户端发送的沙箱测试账号申请请求,所述沙箱测试账号申请请求用于为沙箱测试用户申请用户账号;
第二返回模块,用于根据所述沙箱测试账号申请请求向所述客户端返回用户账号,其中,所返回的用户账号包括指定格式的字符串;
第四接收模块,用于接收客户端发送的网关秘钥申请请求,所述网关秘钥申请请求用于为所述沙箱测试用户申请网关秘钥;
第三返回模块,用于根据所述网关秘钥申请请求向所述客户端返回网关秘钥。
可以理解的是,第一接收模块41、标识识别模块42、接口调用模块43,以及第一返回模块44作为四种功能独立的模块,既可以如图4所示同时配置在装置中,也可以分别单独配置在装置中,因此图4所示的结构不应理解为对本说明书实施例方案的限定。
此外,上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种业务服务器,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的一种基于影子链路实现沙箱调试的方法,该方法至少包括:接收客户端发送的业务接口调用请求,其中,所述业务接口调用请求至少携带有待调用业务接口的接口信息、调用者标识,所述调用者标识用于标识所述客户端上登录用户的用户身份,所述用户身份为下述其中一项:沙箱测试用户、真实线上用户;对所述业务接口调用请求中携带的所述调用者标识进行识别;若识别结果表示所述客户端上登录用户的用户身份为沙箱测试用户,且所述待调用业务接口已签约,则利用预先配置的影子链路调用所述待调用业务接口,其中,所述影子链路模拟于真实线上链路,且与所述真实线上链路相互隔离;向所述客户端返回针对所述待调用业务接口的调用结果。
图5示出了本说明书实施例所提供的一种更为具体的业务服务器硬件结构示意图,该业务服务器可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图5中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图5中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的基于影子链路实现沙箱调试的方法,该方法至少包括:接收客户端发送的业务接口调用请求,其中,所述业务接口调用请求至少携带有待调用业务接口的接口信息、调用者标识,所述调用者标识用于标识所述客户端上登录用户的用户身份,所述用户身份为下述其中一项:沙箱测试用户、真实线上用户;对所述业务接口调用请求中携带的所述调用者标识进行识别;若识别结果表示所述客户端上登录用户的用户身份为沙箱测试用户,且所述待调用业务接口已签约,则利用预先配置的影子链路调用所述待调用业务接口,其中,所述影子链路模拟于真实线上链路,且与所述真实线上链路相互隔离;向所述客户端返回针对所述待调用业务接口的调用结果。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。