一种基于服务切面的报文个性化解析方法和系统技术方案

技术编号:35181437 阅读:17 留言:0更新日期:2022-10-12 17:50
本发明专利技术公开了一种基于服务切面的报文个性化解析方法和系统,属于计算机技术领域,所述方法包括:获取应用的服务配置数据;根据所述服务配置数据,判断是否对应用的服务进行切面;若进行切面,所述应用调用服务后,进行服务切面,获得出参和入参的报文;根据所述服务的总属性列表和报文维护所述服务的映射数据,所述映射数据包括字段及其路径;根据所述服务相应的映射数据,对所述报文进行解析,获得解析内容。通过标识服务的方式,对待切面的服务进行设置和选择,从而对服务切面进行权限设置,增加了选择权;通过总属性列表和报文对映射数据进行维护,避免人工干预,减少维护量;为不同的服务配置相应的映射数据,实现映射数据的个性化。性化。性化。

【技术实现步骤摘要】
一种基于服务切面的报文个性化解析方法和系统


[0001]本专利技术涉及计算机
,具体涉及一种基于服务切面的报文个性化解析方法和系统。

技术介绍

[0002]切面可以将分散在各个业务逻辑代码中相同的代码通过横向切割的方式抽取到一个独立的模块或类中,从而有效将重复逻辑与实际业务分离,实现解耦。实现切面的框架包括Spring AOP等。可以通过服务切面的方式,拦截服务的入参出参等数据,形成报文,再将报文发往消息队列。在报文消费的过程中,需要对报文的数据进行解析、并进行存储。
[0003]目前,微服务在管理、开发人员中受到欢迎。微服务的应用可以包括多个较小的、松散耦合的服务。一方面多个服务都成为数据生产方的情况下,需要对这些服务都进行改造,改造量大,并且每个服务的入参出参结构不同,针对每个服务进行映射数据的配置的维护量增大;另一方面,开发者可能不希望对所有服务都进行切面。

技术实现思路

[0004]针对现有技术中存在的上述技术问题,本专利技术提供一种基于服务切面的报文个性化解析方法和系统,通过总属性列表对服务的映射数据进行维护,并根据服务配置数据进行切面,方便对服务的切面权限进行设置。
[0005]本专利技术公开了一种基于服务切面的报文个性化解析方法,所述方法包括:获取应用的服务配置数据;根据所述服务配置数据,判断是否对应用的服务进行切面;若进行切面,所述应用调用服务后,进行服务切面,获得出参和入参的报文;根据所述服务的总属性列表和报文维护所述服务的映射数据,所述映射数据包括字段及其路径;根据所述服务相应的映射数据,对所述报文进行解析,获得解析内容。
[0006]优选的,判断是否对应用的服务进行切面的方法包括:
[0007]判断所述应用的服务是否满足第一条件,所述第一条件包括以下任一条件或它们的组合:所述服务具有切面注解、具有切面记录和服务配置数据中所述服务标识为数据生产方;
[0008]若满足,进行切面;
[0009]若不满足,不进行切面。
[0010]优选的,维护所述映射数据的方法包括:
[0011]判断所述报文是否满足第二条件,所述第二条件包括:报文与最晚历史报文的时间间隔小于分析周期、且报文的节点数大于历史报文的节点数;
[0012]若满足第二条件,获得服务的总属性列表;
[0013]根据所述总属性列表,遍历所述报文,获得或更新所述服务的映射数据。
[0014]优选的,所述应用具有一个或多个服务;
[0015]所述报文和映射数据存储在Hbase数据库中;
[0016]所述映射数据异步保存在Redis数据库中;
[0017]报文解析的结果索引到Elasticsearch中。
[0018]优选的,通过消息队列进行报文解析的方法:
[0019]步骤201:将所述报文加入到消息队列中;
[0020]步骤202:从所述消息队列中消费所述报文,并将所述报文保存到HBase数据库中;
[0021]步骤203:判断Redis数据库中是否存在所述服务的个性化映射数据;
[0022]若是,执行步骤204:获取所述报文的个性化映射数据,执行步骤206;
[0023]若否,执行步骤205:获取公共映射数据,执行步骤206;
[0024]步骤206:根据所获得的映射数据,对所述报文进行解析,获得解析内容;
[0025]步骤207:获取补充解析内容;
[0026]步骤208:根据解析内容和补充解析内容,形成完整的文档;
[0027]步骤209:将所述文档索引到Elasticsearch中。
[0028]优选的,获取服务配置数据的方法包括:
[0029]所述应用启动后,通过调用服务端查询接口,获得服务配置数据,并存储在本地。
[0030]本专利技术还提供一种用于实现上述报文个性化解析方法的系统,包括服务配置数据加载模块、切面模块、映射数据维护模块和报文解析模块,
[0031]所述服务配置数据加载模块用于获取应用的服务配置数据,并在对应用的服务进行切面时,调用切面模块;
[0032]所述切面模块用于在所述应用调用服务后,进行服务切面,获得出参和入参的报文;
[0033]所述映射数据维护模块用于根据所述服务的总属性列表和报文维护所述服务的映射数据,所述映射数据包括字段及其路径;
[0034]所述报文解析模块用于根据所述映射数据对所述报文进行解析,获得解析内容。
[0035]优选的,所述服务配置数据加载模块和切面模块封装在客户端,所述映射数据维护模块和报文解析模块封装在服务端。
[0036]优选的,所述服务端还部署有报文存储模块,所述报文存储模块用于存储所述报文和映射数据;
[0037]所述客户端将报文推送到消息队列,所述服务端消费所述消息队列的报文。
[0038]优选的,所述映射数据维护模块用于满足第二条件时,根据所述总属性列表,遍历所述报文,获得、并更新所述服务的映射数据。
[0039]与现有技术相比,本专利技术的有益效果为:通过标识服务的方式,对待切面的服务进行设置和选择,从而对服务切面进行权限设置,增加了选择权;通过总属性列表和报文对映射数据进行维护,避免人工干预,减少维护量;为不同的服务配置相应的映射数据,实现映射数据的个性化,避免映射数据过于臃肿,提高服务切面解析的效率;兼容大量微服务的应用。
附图说明
[0040]图1是本专利技术的基于服务切面的报文个性化解析方法的流程图;
[0041]图2是判断是否对服务进行切面的方法流程图;
[0042]图3是维护映射数据的方法流程图;
[0043]图4是通过消息队列进行报文解析的方法流程图;
[0044]图5是本专利技术的系统逻辑框图。
具体实施方式
[0045]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0046]下面结合附图对本专利技术做进一步的详细描述:
[0047]一种基于服务切面的报文个性化解析方法,如图1所示,所述方法包括:
[0048]步骤101:获取应用的服务配置数据。应用包括一个或多个服务。
[0049]步骤102:根据所述服务配置数据,判断是否对应用的服务进行切面。例如通过服务配置数据,标识所述服务进行切面。
[0050]步骤103:若进行切面,所述应用调用服务后,进行服务切面,获得出参和入参的报文。服务切面的实现方法为现有技术,本申请中不再赘述。
[0051]若不进行切面,则正常调用所述服务。
[0052]步骤104:根据所述服务的总属性列表和报文维护所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于服务切面的报文个性化解析方法,其特征在于,所述方法包括:获取应用的服务配置数据;根据所述服务配置数据,判断是否对应用的服务进行切面;若进行切面,所述应用调用服务后,进行服务切面,获得出参和入参的报文;根据所述服务的总属性列表和报文维护所述服务的映射数据,所述映射数据包括字段及其路径;根据所述服务相应的映射数据,对所述报文进行解析,获得解析内容。2.根据权利要求1所述的报文个性化解析方法,其特征在于,判断是否对应用的服务进行切面的方法包括:判断所述应用的服务是否满足第一条件,所述第一条件包括以下任一条件或它们的组合:所述服务具有切面注解、具有切面记录和服务配置数据中所述服务标识为数据生产方;若满足,进行切面;若不满足,不进行切面。3.根据权利要求1所述的报文个性化解析方法,其特征在于,维护所述映射数据的方法包括:判断所述报文是否满足第二条件,所述第二条件包括:报文与最晚历史报文的时间间隔小于分析周期、且报文的节点数大于历史报文的节点数;若满足第二条件,获得服务的总属性列表;根据所述总属性列表,遍历所述报文,获得或更新所述服务的映射数据。4.根据权利要求1所述的报文个性化解析方法,其特征在于,所述应用具有一个或多个服务;所述报文和映射数据存储在Hbase数据库中;所述映射数据异步保存在Redis数据库中;报文解析的结果索引到Elasticsearch中。5.根据权利要求4所述的报文个性化解析方法,其特征在于,还包括通过消息队列进行报文解析的方法:步骤201:将所述报文加入到消息队列中;步骤202:从所述消息队列中消费所述报文,并将所述报文保存到HBase数据库中;步骤203:判断Redis数据库中是否存在所述服务的个性化映射数据;若是,执行步骤204:获取...

【专利技术属性】
技术研发人员:肖厚胜
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

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

1