基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统技术方案

技术编号:38675242 阅读:28 留言:0更新日期:2023-09-02 22:51
本发明专利技术公开了一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统,涉及Java应用软件开发技术领域。该方法包括:在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单;通过Kafka进行指定接口出入参用例数据的抛送;利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统;挡板系统消费中间件Kafka指定系统接口用例数据,根据匹配入参用例,返回给目标业务系统匹配的返回参数用例。本发明专利技术可更加灵活地配置需mock的接口,还可更加灵活地抛送多种匹配用例,应对多种业务场景。对多种业务场景。对多种业务场景。

【技术实现步骤摘要】
基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统


[0001]本专利技术涉及Java应用软件开发
,具体而言,涉及一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统。

技术介绍

[0002]随着系统的迭代和发展,公司业务系统中的服务呈现暴增趋势,在这种情形下,研发人员的系统联调及测试收到司外的系统限制较多,往往会导致联调及测试进展缓慢。这时需要在现有的限制下利用起现有技术实现一个可以根据不同入参数据返回不同返参的系统。最重要的是,该种系统的配置和启用独立于业务系统的运行,修改开关状态和配置数据不需重新编译部署业务系统。因此,如何解决当前mock接口数据固定不可灵活配置以及不可根据指定的调用入参返回理想返回数据成为一个亟需解决的问题。

技术实现思路

[0003]为了克服上述问题或者至少部分地解决上述问题,本专利技术实施例提供一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统,可更加灵活地配置需mock的接口,业务代码零侵入,不必阻断业务系统的现有进程,还可更加灵活地抛送多种匹配用例,应对多种业务场景。
[0004]本专利技术的实施例是这样实现的:
[0005]第一方面,本专利技术实施例提供一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法,包括以下步骤:
[0006]在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单;
[0007]通过Kafka进行指定接口出入参用例数据的抛送;
[0008]在目标业务系统开启外部系统调用方法的aop动态代理,利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统;
[0009]挡板系统消费中间件Kafka指定系统接口用例数据,根据匹配入参用例,返回给目标业务系统匹配的返回参数用例。
[0010]为了解决现有技术中的问题,本方法使用aop切片技术监听调用外部接口的状态,并在异常时重定向;使用Apollo配置对应的开关和接口白名单可更加灵活地配置需mock的接口,业务代码零侵入,不必阻断业务系统的现有进程;使用kafka提供来实时提供出入参用例的灵活自定义配置方式,使用Kafka来配置出入参用例可更加灵活地抛送多种匹配用例,应对多种业务场景,且本方法使用入参完全匹配可更加精准地配置出参用例,相较于统一资源标识符匹配更加精细化。
[0011]基于第一方面,在本专利技术的一些实施例中,上述在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单的方法包括以下步骤:
[0012]在测试环境配置Apollo以KEY、VALUE的形式配置目标业务系统的档板开关和开启挡板调用的接口白名单。
[0013]基于第一方面,在本专利技术的一些实施例中,上述通过Kafka进行指定接口出入参用例数据的抛送的方法包括以下步骤:
[0014]通过Kafka实现指定接口出入参用例数据以json字符串的形式抛送到挡板。
[0015]基于第一方面,在本专利技术的一些实施例中,上述利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统的方法包括以下步骤:
[0016]当开关打开且接口在白名单内,接口自动化批量运行时,利用aop动态代理监控接口是否异常,将监控获取的异常信息存放在堆栈;
[0017]当接口异常时,产生Kafka消息体,Kafka接收请求入参,重定向到挡板系统。
[0018]基于第一方面,在本专利技术的一些实施例中,上述挡板系统消费中间件Kafka指定系统接口用例数据,根据匹配入参用例,返回给目标业务系统匹配的返回参数用例的方法包括以下步骤:
[0019]挡板系统消费中间件Kafka指定系统接口用例数据,根据入参生成mock数据,作为出参返回给目标业务系统。
[0020]第二方面,本专利技术实施例提供一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板系统,包括:配置模块、用例数据抛送模块、接口监听模块以及数据返回模块,其中:
[0021]配置模块,用于在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单;
[0022]用例数据抛送模块,用于通过Kafka进行指定接口出入参用例数据的抛送;
[0023]接口监听模块,用于在目标业务系统开启外部系统调用方法的aop动态代理,利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统;
[0024]数据返回模块,用于挡板系统消费中间件Kafka指定系统接口用例数据,根据匹配入参用例,返回给目标业务系统匹配的返回参数用例。
[0025]为了解决现有技术中的问题,本系统通过配置模块、用例数据抛送模块、接口监听模块以及数据返回模块等多个模块的配合,使用aop切片技术监听调用外部接口的状态,并在异常时重定向;使用Apollo配置对应的开关和接口白名单可更加灵活地配置需mock的接口,业务代码零侵入,不必阻断业务系统的现有进程;使用kafka提供来实时提供出入参用例的灵活自定义配置方式,使用Kafka来配置出入参用例可更加灵活地抛送多种匹配用例,应对多种业务场景,且本系统使用入参完全匹配可更加精准地配置出参用例,相较于统一资源标识符匹配更加精细化。
[0026]第三方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
[0027]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
[0028]本专利技术实施例至少具有如下优点或有益效果:
[0029]本专利技术实施例提供一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法及系统,使用aop切片技术监听调用外部接口的状态,并在异常时重定向;使用Apollo配
置对应的开关和接口白名单可更加灵活地配置需mock的接口,业务代码零侵入,不必阻断业务系统的现有进程;使用kafka提供来实时提供出入参用例的灵活自定义配置方式,使用Kafka来配置出入参用例可更加灵活地抛送多种匹配用例,应对多种业务场景,且本专利技术使用入参完全匹配可更加精准地配置出参用例,相较于统一资源标识符匹配更加精细化。
附图说明
[0030]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0031]图1为本专利技术实施例一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法的流本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法,其特征在于,包括以下步骤:在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单;通过Kafka进行指定接口出入参用例数据的抛送;在目标业务系统开启外部系统调用方法的aop动态代理,利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统;挡板系统消费中间件Kafka指定系统接口用例数据,根据匹配入参用例,返回给目标业务系统匹配的返回参数用例。2.根据权利要求1所述的一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法,其特征在于,所述在测试环境Apollo配置中心配置目标业务系统的挡板开关以及开启挡板调用的接口白名单的方法包括以下步骤:在测试环境配置Apollo以KEY、VALUE的形式配置目标业务系统的档板开关和开启挡板调用的接口白名单。3.根据权利要求1所述的一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法,其特征在于,所述通过Kafka进行指定接口出入参用例数据的抛送的方法包括以下步骤:通过Kafka实现指定接口出入参用例数据以json字符串的形式抛送到挡板。4.根据权利要求1所述的一种基于Apollo和Kafka的自定义代码低侵入mock数据挡板方法,其特征在于,所述利用aop动态代理监听外部接口的状态,当接口异常时,通过Apollo配置重定向到挡板系统的方法包括以下步骤:当开关打开且接口在白名单内,接口自动化批量运行时,利用aop动态代理监控接口是否异常,将监控获取的异常信息存放在堆栈;...

【专利技术属性】
技术研发人员:刘婷尹江平
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1