一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种服务接口反馈异常信息方法、装置、设备、存储介质与流程

2022-05-08 08:08:15 来源:中国专利 TAG:


1.本发明涉及服务接口反馈异常信息领域,特别涉及一种服务接口反馈异常信息方法、装置、设备、存储介质。


背景技术:

2.当前在微服务架构下,当用户操作一个功能接口,这个接口不是在一个项目里面实现,有复杂的项目结构,并且接口之间互相调用。比如存在:a接口调用b接口,b接口调用c接口,c接口调用d接口。在常规的技术方案中,b接口抛出异常信息,c接口抛出异常信息,d接口抛出异常信息;同时a接口、b接口、c接口作为父调用接口还需要编写接收子接口抛出异常的代码,然后把接收到的异常抛出去;形成了套娃式的代码结构,造成代码重复、繁琐,增加不必要的代码,使项目越来越大、并且逻辑臃肿,不利于维护,如果修改b接口的业务逻辑,可能不仅要考虑a接口是否兼容,还要考虑有多少数量的接口调用了b接口,会造成重复、繁琐、臃肿的代码,不利于维护,影响程序人员开发效率和代码阅读。
3.综上可见,如何在服务接口反馈异常信息时,实现代码逻辑清晰、方便代码维护并提升开发质量,进而提高程序人员的开发效率。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种服务接口反馈异常信息方法、装置、设备及存储介质,能够在在服务接口反馈异常信息时,实现代码逻辑清晰、方便代码维护并提升开发质量,进而提高程序人员的开发效率。其具体方案如下:
5.第一方面,本技术公开了一种服务接口反馈异常信息方法,包括:
6.获取用户操作的业务数据;
7.基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;
8.将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;
9.将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。
10.可选的,所述基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口,包括:
11.基于所述业务数据确定服务接口以及所述服务接口之间的预设接口请求调用顺序;
12.相应的,所述将所述业务实例将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存,包括:
13.将所述服务接口产生的异常信息存入对应的业务实例中,按照所述预设接口请求调用顺序将所述业务实例传递至下一服务接口,以便所述业务实例收集并保存与所述业务
数据对应的所有所述服务接口的异常信息。
14.可选的,所述基于所述业务数据确定服务接口以及所述服务接口之间的预设接口请求调用顺序,包括:
15.基于所述业务数据确定调用微服务的调用链;
16.基于所述调用链确定所述微服务的服务接口,并且所述服务接口之间存在预设接口请求调用顺序。
17.可选的,所述基于所述业务数据生成对应的业务实例,包括:
18.基于所述业务数据生成具有唯一性特征业务实例id的业务实例;
19.将所述携带业务实例id的所述业务实例保存至内存数据库中。
20.可选的,所述将所述携带业务实例id的所述业务实例保存至内存数据库中之前,还包括:
21.根据预设哈希算法对业务数据id、时间戳、盐值以及随机数进行哈希运算,以得到具有唯一性特征的对应的所述业务实例id。
22.可选的,所述将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面,包括:
23.通过监听程序对所述内存数据库中所述业务实例进行监听,并将所述业务实例中的所述异常信息返回至人机交互界面,以便所述人机交互界面告警用户。
24.可选的,所述通过监听程序对所述内存数据库中所述业务实例进行监听,并将所述业务实例中的所述异常信息返回至人机交互界面,以便所述人机交互界面告警用户,包括:
25.通过监听程序对所述内存数据库中所述业务实例进行监听,检测所述内存数据库中所述业务实例中的所述异常信息的存入情况,如果所述业务实例中不存在所述异常信息,则监听所述业务实施例在预设时间段内的状态,若所述预设时间段内所述业务实施例存入所述异常信息,则将所述业务实例中的所述异常信息返回至人机交互界面,以便所述人机交互界面告警用户;
26.若所述预设时间段内所述业务实施例未存入所述异常信息,则销毁所述预设时间段内的监听信息。
27.第二方面,本技术公开了一种服务接口反馈异常信息装置,包括:
28.数据获取模块,用于获取用户操作的业务数据;
29.业务实例生成模块,用于基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;
30.异常信息收集模块,用于将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;
31.异常信息反馈模块,用于将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。
32.第三方面,本技术公开了一种电子设备,包括:
33.存储器,用于保存计算机程序;
34.处理器,用于执行所述计算机程序,以实现前述公开的服务接口反馈异常信息方法的步骤。
35.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的服务接口反馈异常信息方法的步骤。
36.可见,本技术公开了一种服务接口反馈异常信息方法,包括:获取用户操作的业务数据;基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。由此可见,本技术首先根据用户操作时产生相应的业务数据,然后根据业务数据确定对应的服务接口的同时,产生业务实例,并且所述业务实例会依次收集各个服务接口产生的异常信息,并将所述业务实例与所述异常信息存储在所述内存数据库中,以便所述数据库将所述异常信息直接反馈至人机交互界面,避免了服务接口既要抛出处理自身产生的异常信息外,还要接收其它服务接口抛出的异常信息,实现代码逻辑清晰,减少重复、繁琐、臃肿的代码,方便代码维护并提升开发质量,并提高程序人员的开发效率。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
38.图1为本技术公开的一种服务接口反馈异常信息方法流程图;
39.图2为本技术公开的一种具体的服务接口反馈异常信息方法流程图;
40.图3为本技术公开的一种具体的服务接口反馈异常信息方法流程图;
41.图4为本技术公开的一种调用项目反馈异常信息流程图;
42.图5为本技术公开的一种服务接口反馈异常信息装置结构示意图;
43.图6为本技术公开的一种电子设备结构图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.当前在微服务架构下,当用户操作一个功能接口,这个接口不是在一个项目里面实现,有复杂的项目结构,并且接口之间互相调用,而父调用接口中既要写抛出异常的代码,还需要编写接收子接口抛出异常的代码,然后把接收到的异常抛出去;形成了套娃式的代码结构,造成代码重复、繁琐,增加不必要的代码,使项目越来越大、并且逻辑臃肿,不利于维护。
46.为此,本技术提供了一种服务接口反馈异常信息方案,能够在服务接口反馈异常信息时,实现代码逻辑清晰、方便代码维护并提升开发质量,进而提高程序人员的开发效率。
47.参照图1所示,本发明实施例公开了一种服务接口反馈异常信息方法,具体包括:
48.步骤s11:获取用户操作的业务数据。
49.本实施例中,获取用户在人机交互界面上进行相关用户操作的业务数据,可以理解的是,所述业务数据具体可以为当用户在购物app(application,应用程序)上进行点击下单按钮,进行商品下单的用户操作时产生的相关的订单项目。
50.步骤s12:基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口。
51.本实施例中,基于用户操作的订单项目生成对应的业务实例,并根据所述订单项目调用业务实例会生成所述订单项目的服务接口,可以理解的是,例如,当用户在购物app上点击下单按钮时,执行商品下单项目时,由于当前基于微服务架构下,某一个复杂功能接口由多个项目下的服务接口共同实现,所以当执行商品下单项目时会涉及多个项目,当调用商品下单接口,会涉及到商品库存扣减接口(商品项目)、用户优惠券抵扣接口(优惠券项目)、订单生成接口(订单项目)。
52.步骤s13:将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存。
53.本实施例中,由于在异步交互中,所述服务接口发送一个请求,不需要等待异常信息的返回,可以实现接口调用链走完整个调用流程,但需要额外开一个监听程序查询业务数据真正的状态。
54.在一种具体实施方式中,将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存在所述业务实例中,以便后面监听程序只对所述业务实例进行监听即可确定具体某一个所述服务端口产生的异常信息并及时反馈至人机交互界面,其中,所述异常信息具体可以包括但不限于:因数据错误、代码异常、业务限制等原因,导致所述项目接口调用链走不完整个调用流程的具体信息。
55.在另一种具体实施方式中,将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并将所述异常信息与所述业务实例进行绑定,也即,所述同一个订单项目下的不同所述服务端口与所述业务实例之间存在对应的关系,以便后面监听程序对所述业务实例进行监听,并将监听到与所述业务实例绑定的所述服务端口产生的异常进行反馈至人机交互界面。
56.步骤s14:将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。
57.本实施例中,将通过所述业务实例进行收集的所述异常信息存储在内存数据库中,然后通过设置监听程序对所述内存数据库中的业务实例进行异常信息监听,若所述监听程序监听到所述异常信息,则通过所述内存数据库将所述异常信息反馈至人机交互界面。
58.可见,本技术公开了一种服务接口反馈异常信息方法,包括:获取用户操作的业务数据;基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;将通过所述业务实例收
集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。由此可见,本技术首先根据用户操作时产生相应的业务数据,然后根据业务数据确定对应的服务接口的同时,产生业务实例,并且所述业务实例会依次收集各个服务接口产生的异常信息,并将所述业务实例与所述异常信息存储在所述内存数据库中,以便所述数据库将所述异常信息直接反馈至人机交互界面,避免了服务接口既要抛出处理自身产生的异常信息外,还要接收其它服务接口抛出的异常信息,实现代码逻辑清晰,减少重复、繁琐、臃肿的代码,方便代码维护并提升开发质量,并提高程序人员的开发效率。
59.参照图2所示,本发明实施例公开了一种具体的服务接口反馈异常信息方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
60.步骤s21:获取用户操作的业务数据。
61.步骤s22:基于所述业务数据生成对应的业务实例,基于所述业务数据确定服务接口以及所述服务接口之间的预设接口请求调用顺序。
62.本实施例中,基于所述业务数据确定调用微服务的调用链;基于所述调用链确定所述微服务的服务接口,并且所述服务接口之间存在预设接口请求调用顺序。可以理解的是,当用户在app上进行相关业务操作时,会触发一个复杂的调用链,例如:当用户在app上点击提交订单,实际会触发订单服务调用商品服务、调用用户虚拟券服务等,基于所述调用链可以进一步确定所述微服务的调用端口,所述服务接口之间存在预设接口请求调用顺序,以便所述业务实例按照所述预设接口请求调用顺序在所述服务接口之间传递。
63.步骤s23:将所述服务接口产生的异常信息存入对应的业务实例中,按照所述预设接口请求调用顺序将所述业务实例传递至下一服务接口,以便所述业务实例收集并保存与所述业务数据对应的所有所述服务接口的异常信息。
64.本实施例中,所述业务实例按照所述预设接口请求调用顺序在所述服务接口之间传递,并收集传递过程中的所有所述服务接口产生的异常信息,通过所述业务实例收集接口异常信息这一步骤,可以保证所述微服务的调用链走完整个调用流程,避免出现所述服务接口不仅抛出产生的异常信息还要接收其他服务接口反馈的异常信息,走不完整个调用流程。
65.步骤s24:将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。
66.其中,关于上述步骤s21、步骤s24中更加具体的处理过程可以参考前述实施例公开的相应内容,再此不再赘述。
67.可见,本技术实施例在确定所述服务接口的同时,也需要进一步确定所述服务接口之间的所述预设接口请求调用顺序,以便所述业务实例能够按照所述预设接口请求调用顺序在与所述业务数据对应的所有所述服务接口之间进行传递,并收集所述服务接口产生的异常信息,能减少所述服务接口重复的接收所述异常信息和抛出异常信息,提升开发质量。
68.参照图3所示,本发明实施例公开了一种具体的服务接口反馈异常信息方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
69.步骤s31:获取用户操作的业务数据。
70.其中,关于上述步骤s31中更加具体的处理过程可以参考前述实施例公开的相应
内容,再此不再赘述。
71.步骤s32:基于所述业务数据生成具有唯一性特征业务实例id的业务实例;将所述携带业务实例id的所述业务实例保存至内存数据库中。
72.本实施例中,所述将所述携带业务实例id的所述业务实例保存至内存数据库中之前,还包括:根据预设哈希算法对业务数据id、时间戳、盐值以及随机数进行哈希运算,以得到具有唯一性特征的对应的所述业务实例id。可以理解的是,利用md5(message digest algorithm,消息摘要算法第五版)对用户点击下单按钮操作产生的某一部分的业务数据按照一定规则计算生成以得到固定长度的字串,例如,参照图4所示,对用户点击下单按钮操作生成相应的订单号、所述时间戳、所述盐值、所述随机数进行哈希值计算,以得到一个具有唯一性特征的业务实例id。当不同所述业务数据在同一时间产生时,即当前时刻并发出现两个或多个所述业务数据的情况,所述盐值的添加可以避免出现两个相同的所述业务实例id,当所述业务数据为同一个时,此时所述随机数的添加可以避免出现两个相同的所述业务实例id,因此这样生成的所述业务实例id是全局唯一的,避免出现两个一模一样的所述业务实例id。并将生成的业务实例id存入redis(remote dictionary server,远程字典服务)中。
73.步骤s33:根据所述业务数据确定对应的执行所述业务数据的服务接口;将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存。
74.本实施例中,参照图4所示,当用户通过购物app对商品进行下单操作产生订单项目时,需要依次调用订单项目、商品项目、优惠券项目,为了保证所述微服务的调用链的完整调用执行,此时将生成的所述业务实例id在各个项目中依次传递,当所述订单项目调用所述商品项目去扣减库存,如果库存不足,则把所述业务实例id 错误代码(库存不足)存入所述redis;当所述订单项目调用所述优惠券项目去检查优惠券是否合适,如果优惠券时间过期,则把所述业务实例id 错误代码(优惠券过期)存入所述redis,实现了对所述异常信息的收集保存工作,并且不影响所述调用链的完整调用执行。
75.步骤s34:通过监听程序对内存数据库中所述业务实例进行监听,并将所述业务实例中的所述异常信息返回至人机交互界面,以便所述人机交互界面告警用户。
76.本实施例中,通过监听程序对所述内存数据库中所述业务实例进行监听,检测所述内存数据库中所述业务实例中的所述异常信息的存入情况,如果所述业务实例中不存在所述异常信息,则监听所述业务实施例在预设时间段内的状态,若所述预设时间段内所述业务实施例存入所述异常信息,则将所述业务实例中的所述异常信息返回至人机交互界面,以便所述人机交互界面告警用户;若所述预设时间段内所述业务实施例未存入所述异常信息,则销毁所述预设时间段内的监听信息。其中,所述人机交互界面具体可以包括但不限于:app端、大屏端、pc(personal computer,个人计算机)管理平台端。可以理解的是,参照图4所示,通过app开启所述监听程序,实时访问所述redis中所述业务实例id的状态,监听是否有所述异常信息存入,如果监听到所述优惠券项目产生了异常信息,则所述app弹出提示框向用户展示:您的优惠券已过期,下单失败!如果没有则继续监听,直到所述业务实例id的时间默认(5分钟)到期后销毁监听程序。
77.可见,本技术实施例中所述监听程序对所述redis中所述业务实例id中的状态进
行监听,监测与所述业务实例id对应的所述服务端口是否产生所述异常信息,而不需要所述服务接口重复接收所述异常信息避免代码臃肿和减轻代码维护难度。
78.参照图5所示,本发明实施例公开了一种服务接口反馈异常信息装置,具体包括:
79.数据获取模块11,用于获取用户操作的业务数据;
80.业务实例生成模块12,用于基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;
81.异常信息收集模块13,用于将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;
82.异常信息反馈模块14,用于将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。
83.可见,本技术公开了一种服务接口反馈异常信息方法,包括:获取用户操作的业务数据;基于所述业务数据生成对应的业务实例,并根据所述业务数据确定对应的执行所述业务数据的服务接口;将所述业务实例在不同所述服务端口之间进行依次传递,并通过所述业务实例对各个所述服务端口产生的异常信息进行收集并保存;将通过所述业务实例收集的所述异常信息存储在内存数据库中,以便所述内存数据库将所述异常信息反馈至人机交互界面。由此可见,本技术首先根据用户操作时产生相应的业务数据,然后根据业务数据确定对应的服务接口的同时,产生业务实例,并且所述业务实例会依次收集各个服务接口产生的异常信息,并将所述业务实例与所述异常信息存储在所述内存数据库中,以便所述数据库将所述异常信息直接反馈至人机交互界面,避免了服务接口既要抛出处理自身产生的异常信息外,还要接收其它服务接口抛出的异常信息,实现代码逻辑清晰,减少重复、繁琐、臃肿的代码,方便代码维护并提升开发质量,并提高程序人员的开发效率。
84.进一步的,本技术实施例还公开了一种电子设备,图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
85.图6为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的服务接口反馈异常信息方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
86.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
87.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
88.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的服务接口反馈异常信息方法的计算机程
序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
89.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的服务接口反馈异常信息方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
90.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
91.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
92.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
93.以上对本发明所提供的一种服务接口反馈异常信息方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献