一种基于ElasticSearch的微服务流程节点数据采集方法和装置制造方法及图纸

技术编号:38079118 阅读:8 留言:0更新日期:2023-07-06 08:46
本发明专利技术涉及微服务技术领域,提供一种基于ElasticSearch的微服务流程节点数据采集方法和装置,本发明专利技术的方法包括:定义注解LogicNode参数并添加至springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值;通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值;通过定义@Before标识的前置切面方法解析注解LogicNode参数,将解析所得的注解LogicNode参数以日志的形式写入到ElasticSearch;根据查询方的查询请求通过关联查询从ElasticSearch中获取完整的注解LogicNode参数值。本发明专利技术可以使代码实现跟业务流程紧密联系,摆脱线下绘制流程图的繁琐操作,可以使逻辑节点图谱数据可以根据代码方法注解中的参数随时更新,操作更加便利,降低系统运维过程中的日志分析复杂度。度。度。

【技术实现步骤摘要】
一种基于ElasticSearch的微服务流程节点数据采集方法和装置


[0001]本专利技术涉及微服务
,尤其涉及一种基于ElasticSearch的微服务流程节点数据采集方法和装置。

技术介绍

[0002]在传统的微服务系统开发过程中,工程师通常会遵循先设计、后实践的原则进行系统开发工作。在设计阶段,通过绘制业务流程图来描述重要的业务逻辑,在开发阶段则不断地参考流程图完成代码实现。在复杂的分布式微服务系统中,一次用户请求往往会经过多个链路逻辑处理才能顺利结束,当前行业主流的日志调用链追踪方案会记录下本次请求的实际链路调用情况,用于后续日志分析、逻辑回溯。
[0003]实际开发工作中,现有的方案存在以下缺陷和不足:1.开发过程中,业务逻辑流程图与代码完全割裂,代码评审以及后续代码维护时需要工程师人肉分析代码逻辑与流程图之间的逻辑映射关系,并且当有逻辑更新时,需要同时更新代码以及流程图以保持系统业务逻辑的一致性,维护成本高。2.在日志链路追踪过程中,只记录了当前业务中实际发生调用的链路信息,业务中部分未发生调用的链路记录无法在调用链中体现,导致后续的日志调用链分析时无法回溯整个业务流程。
[0004]因此,如何提供一种完整、可追踪、维护方便的数据采集方法,成为亟待解决的技术问题。

技术实现思路

[0005]有鉴于此,为了克服现有技术的不足,本专利技术旨在提供一种基于ElasticSearch的微服务流程节点数据采集方法和装置。
[0006]根据本专利技术的一方面,提供一种基于ElasticSearch的微服务流程节点数据采集方法,包括:
[0007]步骤S1:定义注解LogicNode参数并添加至springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值;
[0008]步骤S2:通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值;
[0009]步骤S3:通过定义@Before标识的前置切面方法解析注解LogicNode参数,将解析所得的注解LogicNode参数以日志的形式写入到ElasticSearch;
[0010]步骤S4:根据查询方的查询请求通过关联查询从ElasticSearch中获取完整的注解LogicNode参数值。
[0011]作为本专利技术的优选,本专利技术基于ElasticSearch的微服务流程节点数据采集方法,步骤S1包括:
[0012]步骤S11:为springboot微服务配置ElasticSearch参数;
[0013]步骤S12:在配置后的springboot微服务中编写方法切面注解LogicNode;
[0014]步骤S13:在编写的方法切面注解LogicNode中定义需要写入到ElasticSearch的注解LogicNode参数;
[0015]步骤S14:将步骤S13定义的注解LogicNode参数添加至步骤S11配置的springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值。
[0016]作为本专利技术的优选,本专利技术基于ElasticSearch的微服务流程节点数据采集方法,步骤S13中的注解LogicNode参数包括节点唯一标识nodeId、节点描述nodeDesc、上级节点标识pid以及逻辑节点树标识treeId。
[0017]作为本专利技术的优选,本专利技术基于ElasticSearch的微服务流程节点数据采集方法,步骤S2包括:
[0018]步骤S21:在配置后的springboot微服务中编写NodePostProcessor类,定义BeanPostProcessor类的postProcessAfterInitialization方法;
[0019]步骤S22:在定义的postProcessAfterInitialization方法中通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值;
[0020]步骤S23:通过ElasticSearch的API接口将解析获得的完整的注解LogicNode参数值保存到ElasticSearch中。
[0021]作为本专利技术的优选,本专利技术基于ElasticSearch的微服务流程节点数据采集方法,步骤S3包括:
[0022]步骤S31:编写AOP切面LogicNodeAspect类,在编写的AOP切面LogicNodeAspect类中定义@Before标识的前置切面方法;
[0023]步骤S32:在定义的前置切面方法中解析调用方法的注解LogicNode参数,将所述注解LogicNode参数中的节点唯一标识nodeId、逻辑节点树标识treeId放入线程变量容器中;
[0024]步骤S33:编写LogEsAppender类,通过在编写的LogEsAppender类中定义Appender实现append方法;
[0025]步骤S34:通过append方法将线程容器中的注解LogicNode参数附加到日志信息中并以日志的形式写入到ElasticSearch。
[0026]作为本专利技术的优选,本专利技术基于ElasticSearch的微服务流程节点数据采集方法,步骤S4包括:
[0027]步骤S41:通过自定义日志查询接口,接收并解析查询方的查询请求;
[0028]步骤S42:根据解析所得的查询条件获取对应日志中的注解LogicNode参数;
[0029]步骤S43:根据获取的注解LogicNode参数从Elasticsearch中关联查询完整的注解LogicNode参数值;
[0030]步骤S44:将查询所得的完整的注解LogicNode参数值以树形结构返回至查询方。
[0031]根据本专利技术的另一方面,提供一种基于ElasticSearch的微服务流程节点数据采集装置,包括:
[0032]节点数据注解标记模块,用于定义注解LogicNode参数并添加至springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值;
[0033]节点数据解析采集模块,用于通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值,通过定义@Before标识的前置切面方法解析注解LogicNode参数,将解析所得的注解LogicNode参数以日志的形式写入到ElasticSearch;
[0034]节点数据查询模块,用于根据查询方的查询请求通过关联查询从ElasticSearch中获取完整的注解LogicNode参数值。
[0035]作为本专利技术的优选,本专利技术基于ElasticSearch的微本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,所述方法包括:步骤S1:定义注解LogicNode参数并添加至springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值;步骤S2:通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值;步骤S3:通过定义@Before标识的前置切面方法解析注解LogicNode参数,将解析所得的注解LogicNode参数以日志的形式写入到ElasticSearch;步骤S4:根据查询方的查询请求通过关联查询从ElasticSearch中获取完整的注解LogicNode参数值。2.根据权利要求1所述的基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,步骤S1包括:步骤S11:为springboot微服务配置ElasticSearch参数;步骤S12:在配置后的springboot微服务中编写方法切面注解LogicNode;步骤S13:在编写的方法切面注解LogicNode中定义需要写入到ElasticSearch的注解LogicNode参数;步骤S14:将步骤S13定义的注解LogicNode参数添加至步骤S11配置的springboot微服务对应的业务逻辑方法上,为定义的注解LogicNode参数赋值。3.根据权利要求2所述的基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,步骤S13中的注解LogicNode参数包括节点唯一标识nodeId、节点描述nodeDesc、上级节点标识pid以及逻辑节点树标识treeId。4.根据权利要求1所述的基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,步骤S2包括:步骤S21:在配置后的springboot微服务中编写NodePostProcessor类,定义BeanPostProcessor类的postProcessAfterInitialization方法;步骤S22:在定义的postProcessAfterInitialization方法中通过JDK反射对所有添加至springboot微服务中对应的业务逻辑方法上的注解LogicNode参数进行解析,获得完整的注解LogicNode参数值;步骤S23:通过ElasticSearch的API接口将解析获得的完整的注解LogicNode参数值保存到ElasticSearch中。5.根据权利要求1所述的基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,步骤S3包括:步骤S31:编写AOP切面LogicNodeAspect类,在编写的AOP切面LogicNodeAspect类中定义@Before标识的前置切面方法;步骤S32:在定义的前置切面方法中解析调用方法的注解LogicNode参数,将所述注解LogicNode参数中的节点唯一标识nodeId、逻辑节点树标识treeId放入线程变量容器中;步骤S33:编写LogEsAppender类,通过在编写的LogEsAppender类中定义Appender实现append方法;步骤S34:通过append方法将线程容器中的注解LogicNode参数附加到日志信息中并以
日志的形式写入到ElasticSearch。6.根据权利要求1所述的基于ElasticSearch的微服务流程节点数据采集方法,其特征在于,步骤S4包括:步骤S41:通过自定义日志查询接口,接收并解析查询方的查询请求;步骤S42:根据解析所得的查询条件获取对应日志中的注解Lo...

【专利技术属性】
技术研发人员:张晓军陈治祥段利君
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

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

1