服务总线中公共服务高效配置和交互的方法技术

技术编号:39406918 阅读:8 留言:0更新日期:2023-11-19 15:58
本发明专利技术服务总线中公共服务高效配置和交互的方法,每个微服务节点内部能自动查找Java虚拟机中接口路由上下文,通过发现公共服务的关联点进行调用,能优化通过网络交互调用公共服务带来的性能问题,本发明专利技术通过简单组件界面化配置实现快速的公共服务复用;服务复用时同一个业务服务逻辑无须大量的路由拆解;服务复用公共服务的实现都在同一个JVM内存环境下进行,无网络性能瓶颈;可快速基于业务服务的主日志查看各个公共服务模块的日志,便于服务日常运维问题排查需要,业务流转逻辑由程序组织记录,无须人工处理,服务日常运维异常排查问题效率高。题效率高。题效率高。

【技术实现步骤摘要】
服务总线中公共服务高效配置和交互的方法


[0001]本专利技术属于数据处理领域,具体涉及一种服务总线中公共服务高效配置和交互的方法。

技术介绍

[0002]在医院信息化系统中点对点问题常见的解决方式是基于SOA架构搭建的集成平台服务总线,服务总线提供了许多标准规范的服务列表,这些服务一般基于行业中间件进行可视化编排配置实现服务开放、服务调用、接口标准转换、数据格式转换等。通常包括约定入参校验、入参读取、业务相关逻辑、标准异常响应、标准正常响应等编排模块进行可视化编排配置。
[0003]服务总线的服务中经常出现入参校验、入参读取、请求标准响应等逻辑相同的交互模块,在以往的行业中间件中常常使用以下几种方式解决:1、不考虑复用,如果有n个服务,则相关逻辑在n个服务中分别实现,如遇到入参校验逻辑需要修改,则需要在配置界面修改、发布n次。如图1中内容相同实际完全独立的三个commonReqValid逻辑副本1

3在ABC三个服务中分别实现的示例;2、使用路由连接器进行业务逻辑和公共逻辑之间跳转,如服务serverA只有一个公共逻辑commonReqValid,使用路由连接器完成路由需要以下逻辑连接:serverA_1服务+commonReqValid服务+serverA_2服务,如图2所示。其主要问题在于从公共逻辑返回原业务逻辑时需要人工配置大量的返回判断,见图2的右侧逻辑,则可能导致原有serverA服务被迫拆解为多个子路由serverA_1服务、serverA_2服务、serverA_3服务等。如果人工配置遗忘设置返回逻辑则会导致业务错误,十分不便于配置和管理。
[0004]3、使用协议http、soap等客户端网络调用公共服务来实现服务快速复用,如图3所示,使用这种方式可以很好解决使用路由连接其带来的问题,但是如果一个服务使用多个公共逻辑,有这两个问题:第一、因调用公共服务会带来非常多的网络消耗;第二,公共服务作为流量汇聚点流量压力大。这两点都会带来架构性能问题。
[0005]现有的解决方式存在重复配置、配置效率低、配置化复杂、运维管理困难、容易由于配置人员疏忽引起业务异常、网络交互传输过于频繁等问题。

技术实现思路

[0006]本专利技术的目的在于提供一种服务总线中公共服务高效配置和交互的方法,每个微服务节点内部自动查找Java虚拟机(JVM)中接口路由上下文,通过发现公共服务的关联点进行公共服务的快速调用,解决使用协议http、soap等客户端网络调用公共服务来实现服务快速复用时,频繁网络调用引起的性能低问题,以及优化公共服务日常运维排查复杂的问题。
[0007]本专利技术服务总线中公共服务高效配置和交互的方法,包括如下步骤:步骤1、改进使用协议http或soap客户端网络调用公共服务的业务服务,将用于网
络调用公共服务的http或soap客户端升级为路由类组件,改进的使用协议http客户端网络调用公共服务的业务服务,包括HTTP入口逻辑、路由类组件和业务逻辑,通过该路由类组件将网络调用逻辑转换为在同一个JVM内存环境下查找JVM中接口路由上下文,发现公共服务的关联点,从而发现和安全调用公共服务;步骤2、路由类组件是在JVM中找到公共服务并进行安全调用,该路由类组件处理请求消息顺序执行前置管道、主逻辑管道、后置管道的步骤:步骤2.1、路由类组件执行前置管道内部逻辑:将其他路由流转下来的交换机exchange作为入参;从交换机exchange中获取camelRouteClassList,先判断camelRouteClassList的长度是否超过限制,若是,则交换机exchange路由到异常统一处理管道,若否,则判断camelRouteClassList是否包含本路由类组件的唯一码RouteCode,若是,则交换机exchange路由到异常统一处理管道,若否,则创建RouteClassReqModel实体,并添加到交换机exchange的camelRouteClassList中,随后交换机exchange将流转到主逻辑管道;步骤2.2、路由类组件执行主逻辑管道内部逻辑:先判断本管道成员targetConsumer不空且targetConsumer状态是否有效,若否,则使用findConsumer方法查找目标路由targetConsumer,若是,则清洗交换机,创建新交换机newExchange,将原交换机exchange的业务数据快速拷贝一份到新交换机newExchange;执行目标路由,以纯净的新交换机newExchange为入参,使用targetConsumer作为目标子路由进行调用;清洗更新,新交换机newExchange包含目标子路由执行结果的业务数据,仅将业务数据更新回原交换机exchange;随后交换机exchange将流转到后置管道;步骤2.3、路由类组件执行后置管道内部逻辑:先将前置管道和主逻辑管道代码耗时记录到交换机exchange属性中,将本路由类组件配置数据的版本号记录到交换机exchange属性中;判断交换机exchange是否包含CamelExceptionCaught,若是,则交换机exchange流转到异常统一处理管道,若否,则本路由类组件执行结束,之后交换机exchange自动流转到其他业务路由节点;所述异常统一处理管道,用于将各类协议、组件产生的异常统一收集归档到日志存储库,并统一标准化响应给第三方;步骤3、保证多个微服务内部公共服务代码同步一致,包括如下实现步骤:通过服务总线后台对业务服务的路由类组件进行可视化配置;将路由类组件的数据发布到实时业务环境底层实现逻辑;路由类组件日常消息运维排查:以各业务服务为主形成运维日志,打开运维日志查询页面,查询筛选业务数据,查看业务服务内部流转链路图,通过点击调用公共服务的路由类组件节点,打开路由类组件调用公共服务内部流转逻辑图,基于各业务服务查看各个公共服务模块的日志。
[0008]所述步骤1中路由类组件调用公共服务的过程完全在JVM内存中进行,调用方发起调用总线中业务服务的请求,该业务服务的请求被服务总线所在的服务器网卡TCP接收缓冲区接收,该业务服务的请求进入服务总线业务节点进程的JVM内存时,由netty容器的http模块进行入参数据的解包,并传递给服务总线中Camel上下文池中与该业务服务相关的接口入口路由点,该入口路由点将该业务服务的请求传递给用于调用公共服务的路由类
组件,该路由类组件直接在JVM内存中找到公共服务的关联点。
[0009]所述步骤2.2中findConsumer方法查找目标路由targetConsumer,具体为:使用当前管道所属路由类组件的ID作为入参routeId,读取所属路由类组件初始化时缓存的所有路由上下文ContextModelList,遍历ContextModelList,判断每个上下文中是否存在以所属路由类组件的ID为入参routeId的路由route,并获取其唯一consumer作为目标路由targetConsumer。
[0010]所述通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.服务总线中公共服务高效配置和交互的方法,其特征在于包括如下步骤:步骤1、改进使用协议http或soap客户端网络调用公共服务的业务服务,将用于网络调用公共服务的http或soap客户端升级为路由类组件,改进的使用协议http客户端网络调用公共服务的业务服务,包括HTTP入口逻辑、路由类组件和业务逻辑,通过该路由类组件将网络调用逻辑转换为在同一个JVM内存环境下查找JVM中接口路由上下文,发现公共服务的关联点,从而发现和安全调用公共服务;步骤2、路由类组件是在JVM中找到公共服务并进行安全调用,该路由类组件处理请求消息顺序执行前置管道、主逻辑管道、后置管道的步骤:步骤2.1、路由类组件执行前置管道内部逻辑:将其他路由流转下来的交换机exchange作为入参;从交换机exchange中获取camelRouteClassList,先判断camelRouteClassList的长度是否超过限制,若是,则交换机exchange路由到异常统一处理管道,若否,则判断camelRouteClassList是否包含本路由类组件的唯一码RouteCode,若是,则交换机exchange路由到异常统一处理管道,若否,则创建RouteClassReqModel实体,并添加到交换机exchange的camelRouteClassList中,随后交换机exchange将流转到主逻辑管道;步骤2.2、路由类组件执行主逻辑管道内部逻辑:先判断本管道成员targetConsumer不空且targetConsumer状态是否有效,若否,则使用findConsumer方法查找目标路由targetConsumer,若是,则清洗交换机,创建新交换机newExchange,将原交换机exchange的业务数据快速拷贝一份到新交换机newExchange;执行目标路由,以纯净的新交换机newExchange为入参,使用targetConsumer作为目标子路由进行调用;清洗更新,新交换机newExchange包含目标子路由执行结果的业务数据,仅将业务数据更新回原交换机exchange;随后交换机exchange将流转到后置管道;步骤2.3、路由类组件执行后置管道内部逻辑:先将前置管道和主逻辑管道代码耗时记录到交换机exchange属性中,将本路由类组件配置数据的版本号记录到交换机exchange属性中;判断交换机exchange是否包含CamelExceptionCaught,若是,则交换机exchange流转到异常统一处理管道,若否,则本路由类组件执行结束,之后交换机exchange自动流转到其他业务路由节点;所述异常统一处理管道,用于将各类协议、组件产生的异常统一收集归档到日志存储库,并统一标准化响应给第三方;步骤3、保证多个微服务内部公共服务代码同步一致,包括如下实现步骤:通过服务总线后台对业务服务的路由类组件进行可视化配置;将路由类组件的数据发布到实时业务环境底层实现逻辑;路由类组件日常消息运维排查:以各业务服务为主形成运维日志,打开运维日志查询页面,查询筛选业务数据,查看业务服务内部流转链...

【专利技术属性】
技术研发人员:黄海晴李程扬江智明陈航飞方晓茹朱启敏陈文座
申请(专利权)人:智业软件股份有限公司
类型:发明
国别省市:

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

1