CN112732534A - 一种支持分布式微服务的esb系统 - Google Patents
一种支持分布式微服务的esb系统 Download PDFInfo
- Publication number
- CN112732534A CN112732534A CN202110338881.8A CN202110338881A CN112732534A CN 112732534 A CN112732534 A CN 112732534A CN 202110338881 A CN202110338881 A CN 202110338881A CN 112732534 A CN112732534 A CN 112732534A
- Authority
- CN
- China
- Prior art keywords
- service
- esb
- access
- information
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供支持分布式微服务的ESB系统,包括ESB服务层和统一服务治理监控端;ESB服务层包括:ESB接入微服务模块和ESB接出微服务模块;ESB接入微服务模块包括多个接入微服务组件,用于将至少一个请求方系统接入到ESB;ESB接出微服务模块包括多个接出微服务组件,用于与一个或多个服务方系统进行交互;统一服务治理监控端包括:注册中心模块,用于对所述ESB接入微服务模块和所述ESB接出微服务模块进行注册;以及,服务管控模块,用于获取ESB服务层的运行信息,根据运行信息进行告警。本发明ESB系统“去中心化”的分布式部署方式,一方面实现性能扩展,另一方面带来更大稳定性价值。
Description
技术领域
本发明涉及信息技术领域,具体涉及一种支持分布式微服务的ESB系统。
背景技术
当前银行IT系统架构处于SOA(Service-Oriented Architecture,面向服务的架构)架构设计思想下企业服务总线(ESB,Enterprise Service Bus)系统支撑阶段,ESB系统在一段时间内仍需作为中枢系统与遗留异构系统交互,同时也需考虑与新型微服务技术化的系统交互,API(Application Programming Interface,应用程序接口)治理也将是传统服务治理中一项新的内容,传统集中式ESB需考虑在当前背景下的定位与发展。
发明人在实现本发明的过程中发现,现有传统的集中ESB存在扩展性不足、扩展能力有限,或者扩展不灵活的问题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种支持分布式微服务的ESB系统,以实现“去中心化”的分布式部署方式和性能扩展。
第一方面,本发明实施例提供了一种支持分布式微服务的ESB系统,其包括ESB服务层和统一服务治理监控端;
所述ESB服务层包括:ESB接入微服务模块和ESB接出微服务模块;所述ESB接入微服务模块包括多个接入微服务组件,用于将至少一个请求方系统接入到所述ESB系统;所述ESB接出微服务模块包括多个接出微服务组件,用于与一个或多个服务方系统进行交互;
所述统一服务治理监控端包括:注册中心模块,用于对所述ESB接入微服务模块和所述ESB接出微服务模块进行注册;以及,服务管控模块,用于获取所述ESB服务层的运行信息,根据所述运行信息进行告警。
在一些可能的实施方式中,所述接入微服务组件和所述接出微服务组件均能够实现独立部署,能够在线独立启动或停止;所述统一服务治理监控端包括:
可视化的WEB端操作界面,用于向所述ESB服务层输入配置信息,使所述ESB服务层根据所述配置信息进行运行;以及,显示获取的所述ESB服务层的日志流水信息;
监控预警模块,用于当根据所述ESB服务层的日志流水信息确定存在异常时,向所述可视化的WEB端操作界面输出告警信息;以及,当接收到的报文没有携带授权信息时,确定发出报文的请求方系统没有访问权限,并向所述请求方系统和所述可视化的WEB端操作界面返回用于指示未授权的提示信息;当接收到的报文具有授权信息时,进一步基于所述报文中携带的校验信息对所述报文进行校验,如果校验失败则拒绝所述请求方系统,并且向所述请求方系统和所述可视化的WEB端操作界面返回用于指示校验未通过的提示信息。
在一些可能的实施方式中,所述ESB系统支持网关模式、SpringCloud服务框架模式和嵌入式应用程序接口API模式。
在一些可能的实施方式中,所述可视化的WEB端操作界面,具体用于向所述ESB服务层输入服务资产信息;所述ESB服务层,具体用于读取所述服务资产信息,根据所述服务资产信息包含的约束性条件进行路由处理,将报文路由到相应的服务方系统。
在一些可能的实施方式中,所述统一服务治理监控端,还包括:服务治理模块,用于根据所述日志流水信息获得服务审计结果,根据所述服务审计结果确定所述服务运行质量变差时,向所述请求方系统和/或所述服务方系统输出用于指示执行优化操作的第一提示信息。
在一些可能的实施方式中,所述服务治理模块,具体用于当根据服务审计结果确定在历史预设时间段内中的响应时间大于预设的响应时间阈值的服务方系统,并向响应时间大于预设的响应时间阈值的服务方系统输出进行扩容的第二提示信息。
在一些可能的实施方式中,所述服务治理模块,还用于当根据服务审计结果确定在历史预设时间段内中的交易失败率大于预设的失败率阈值时,向所述请求方系统和/或所述服务方系统输出用于指示进行自行排查的第三提示信息。
在一些可能的实施方式中,所述服务管控模块,还用于:为重要性级别高于预设的第一级别阈值的请求方系统和服务方系统配置独立专用的接入微服务组件和接出微服务组件;以及,为重要性级别低于预设的第二级别阈值的多个请求方系统和多个服务方系统配置一个共享的接入微服务组件和一个共享的接出微服务组件;其中,所述第一级别阈值大于或等于所述第二级别阈值。
在一些可能的实施方式中,所述服务管控模块还用于向ESB服务层录入服务配置信息,使ESB服务层根据该服务配置信息进行运行,并且从数据库中获取ESB服务层的运行信息,根据该运行信息进行告警。
在一些可能的实施方式中,所述ESB接入微服务模块还包括如下任意一个或多个组件:
安全认证组件,用于根据预设的IP地址黑名单和IP地址白名单,对所述请求方系统和/或所述服务方系统对应的IP地址进行权限控制;
协议转换组件,用于对所述请求方系统或者所述服务方系统的接入协议转换后接入ESB系统;
动态路由组件,用于在接入ESB系统后进行动态路由处理,将接入的交易报文路由至所述ESB接出微服务模块。
在一些可能的实施方式中,所述的总线系统还包括:基础组件层和数据存储层;所述基础组件层包括如下中的任意一个或多个组件:缓存组件、数据访问组件、消息组件、日志组件、以及全局序列号组件;所述数据存储层包括如下中的任意一个或多个:关系型数据库RDB、消息队列MQ、分布式缓存Redis、以及分布式日志ES。
上述技术方案具有如下有益效果:
本发明实施例的ESB系统支持灵活部署,ESB系统具体包括ESB服务层和统一服务治理监控端,ESB服务层包括ESB接入微服务模块和ESB接出微服务模块,ESB接入微服务模块包括多个接入微服务组件,ESB接出微服务模块包括多个接出微服务组件,统一服务治理监控端包含的注册中心模块对多个接入微服务组件和多个接出微服务组件进行注册,从而使得ESB系统支持分布式微服务,并且可以对接入微服务和接出微服务对应的模块进行灵活的划分以及组合,从而实现可分可合的灵活部署;另外,通过统一服务治理监控端包含的服务管控模块基于ESB服务层的运行信息进行告警,可实现服务管控和治理目的,有利于实现服务治理效果。本发明实施例采用“去中心化”即非集中式的分布式部署方式,接入与接出解耦、拆分,一方面实现性能扩展,另一方面可带来更大扩展性和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的支持分布式微服务的ESB系统总体技术架构示意图;
图2是本发明实施例的分布式ESB网关模式的逻辑功能框图;
图3是本发明实施例的分布式ESB SpringCloud服务框架模式的逻辑功能框图;
图4是本发明实施例的支持分布式微服务的ESB系统的API模式的逻辑功能框图;
图5是本发明实施例的支持分布式微服务的ESB系统的服务治理架构的逻辑功能框图;
图6是本发明实施例的支持分布式微服务的ESB系统可分可合的灵活部署设计的逻辑功能框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的目的之一在于,考虑集中式ESB架构与分布式微服务技术架构并存背景下企业服务总线产品进一步发展与定位问题,输出更适于银行当前阶段的IT基础架构解决方案,提升整体技术架构的合理性。
如图1所示,本发明实施例提供了一种支持分布式微服务的ESB系统,其包括ESB服务层和统一服务治理监控端;
ESB服务层包括:ESB接入微服务模块和ESB接出微服务模块;ESB接入微服务模块包括多个接入微服务组件,用于将至少一个请求方系统接入到ESB系统;ESB接出微服务模块包括多个接出微服务组件,用于与一个或多个服务方系统进行交互;通过调用或路由,找到相应的接出微服务组件,由相应的接出微服务组件与相应的服务方系统进行对接;
统一服务治理监控端包括:注册中心模块,用于对ESB接入微服务模块和ESB接出微服务模块进行注册;以及,服务管控模块,用于获取ESB服务层的运行信息,根据运行信息进行告警。
在一些可能的实施例中,每个接入微服务组件和每个接出微服务组件均能够实现独立部署,能够在线独立启动或在线独立停止。统一服务治理监控端(管理端)还用于对独立部署的每个接入微服务组件和独立部署的每个接出微服务组件进行启停控制操作。
统一服务治理监控端具有可视化的WEB端操作界面,用于向ESB服务层输入配置信息,使ESB服务层根据配置信息进行运行;以及,显示获取的ESB服务层的运行信息,当运行信息不正常时,输出告警信息;其中,运行信息包括:日志流水信息。
具体地,存在两类信息,包括与外围系统相关的服务信息和与外围系统相关的授权校验信息。服务方系统通常具有多个服务,这是基本的配置信息,服务信息是指要访问的服务的配置信息。授权校验信息包括:授权信息和校验信息。授权信息是系统级的,用于指示某个请求方系统是否具有访问某个服务方系统的权限。ESB系统对于接收到的一条从请求方系统(例如柜面系统)到服务方系统(例如核心系统)的报文,判断是否有授权信息,如果没有授权信息,则确定该柜面系统无权限访问,并且通过应答报文向该请求方系统返回未授权的提示信息,以及向该统一服务治理监控端也返回未授权的提示信息。在授权通过之后,再基于校验信息对报文进行校验。校验信息,例如是格式校验信息。例如,本应有三个必输入项(必填项),但只输入了两个必输入项,则校验未通过,或者说存在一个或多个必输入项没有填写。如果必填项未填写,则拒绝该请求方系统,并且通过应答报文向该请求方系统返回校验未通过的提示信息,以及向统一服务治理监控端也返回校验未通过的提示信息。从而,统一服务治理监控端(管理端)能够在例如监控屏幕显示或查询到未授权或校验未通过的信息,或者统一服务治理监控端将上述未授权或校验未通过信息发送至管理者的接收设备,例如以短信方式发送到管理者的移动通信终端,或者发送到管理者的移动通信终端上的应用程序APP。在授权通过和校验通过之后,再经过路由处理,找到相应的接出微服务模块,将报文发送到相应的服务方系统中的相应的某个服务。在一些实施例中,交易报文中携带有请求方的身份信息。一方面,本实施例中管理端收集服务端(服务运行平台)的运行信息,在管理端进行显示或者经过数据分析后以可视化方式进行显示,以掌握服务端的运行状态情况。另一方面,本实施例通过管理端还对服务端包含的ESB服务层进行配置,生成基础的配置信息,将配置信息加载给ESB服务层。上述配置信息包括:服务信息,以及与服务相关联的授权信息,与服务相关联的校验信息。这些配置信息均是通过管理端配置到ESB服务层中的。
在一些可能的实施例中,ESB系统支持网关模式、SpringCloud服务框架模式和嵌入式应用程序接口API模式。在配置态中,管理端预先将持网关模式、SpringCloud服务框架模式和嵌入式应用程序接口API模式这三种模式分别对应的配置信息和服务信息录入加载至服务端(服务运行平台)。在运行态中,管理端与服务端形成为分离的程序,相互独立工作。
在一些可能的实施例中,可视化的WEB端操作界面,具体可以用于向ESB服务层输入服务资产信息;ESB服务层,具体可以用于读取服务资产信息,根据服务资产信息包含的约束性条件进行路由处理,将报文路由到相应的服务方系统。具体地,服务资产信息包括:外围系统信息、服务信息和授权信息。外围系统信息包括:请求方系统信息和服务方系统信息(身份标识);服务信息包括服务方系统的服务接口。约束性条件包括:授权信息和校验信息;在授权不通过时不执行路由处理,或者,在校验未通过时也不执行路由处理;在授权通过并且校验通过之后,才根据服务信息执行路由处理。例如,服务方系统有三个服务,其服务信息有两类,一类是接口信息,例如接口包含的字段数量;另一类是与路由相关的信息。
在一些可能的实施例中,统一服务治理监控端,还可以包括:服务治理模块,用于根据日志流水信息获得服务审计结果,根据服务审计结果确定服务运行质量变差时,向上述请求方系统和/或服务方系统输出用于指示执行优化操作的第一提示信息。具体地,衡量服务运行质量的指标可以包括:响应时间、失败率等。从审计维度,获得服务运行质量对应的监测参数或监测指标随时间的变化趋势,当检测到在某一天或者其他某个历史时间段(例如过去的一周,或一个月,或一个季度)中,上述任意一个监测参数或监测指标变差时,则输出提示信息或建议信息,以触发请求方系统和/或服务方系统执行与变差的监测参数相对应的优化操作。例如,上述监测参数可以是响应时间,当某个时间段内的响应时间变长或响应变慢时,向请求方系统或者服务方系统输出提示信息。例如,上述监测参数可以是失败率,当某个历史时间段内的失败率高于预设的阈值时,向请求方系统或者服务方系统输出提示信息。失败率等于失败的交易数量(笔数)与总交易数量(笔数)之间的比值。失败的交易例如可以包括:无应答交易、超时交易、基于返回码确定的普通交易错误等。
在一些可能的实施例中,服务治理模块,具体可以用于当根据服务审计结果确定在历史预设时间段内中的响应时间大于预设的响应时间阈值的服务方系统,并向响应时间大于预设的响应时间阈值的服务方系统输出进行扩容的第二提示信息。
在一些可能的实施例中,服务治理模块,还可以用于当根据服务审计结果确定在历史预设时间段内中的交易失败率大于预设的失败率阈值时,向所述请求方系统和/或所述服务方系统输出用于指示进行自行排查的第三提示信息。
在本实施例中,审计是对监控的补充,审计不同于监控,监控包括对ESB系统实时运行情况进行告警,而审计可以提供针对不同周期的历史时间段的日报,周报、月报、双月报、季报、半年报等非实时性或趋势性的分析报告。在本实施例中,根据日志流水信息获得服务审计结果。当响应时间变长时,分析确定外围系统即请求方系统和服务方系统存在性能瓶颈,建议外围系统进行扩容。当失败率变高时即超出预设的阈值,向外围系统输出需要关注,并且建议外围系统进行自行排查。上述向外围系统输出的优化操作建议用于从外围系统进行参考,通过对历史数据的分析,例如趋势分析,能够指出外围系统可能存在的问题,并且把问题在未发生之前就能预知或预测出来,提前提示外围系统执行优化操作。即本实施例的统一服务治理监控端能够对外围系统实现提前预防性的、预测性的潜在的故障诊断分析,在故障未达到一定规模或未全面爆发之前,向外围系统输出具体的优化建议,提示外围系统对自身进行相应的具体检查。
在一些可能的实施例中,所述服务管控模块,还可以用于:为重要性级别高于预设的第一级别阈值的请求方系统和服务方系统配置独立专用的接入微服务组件和接出微服务组件;以及,为重要性级别低于预设的第二级别阈值的多个请求方系统和多个服务方系统配置一个共享的接入微服务组件和一个共享的接出微服务组件;其中,第一级别阈值大于或等于第二级别阈值。
在一些可能的实施例中,ESB接入微服务模块还可以包括如下任意一个或多个组件:安全认证组件,用于根据预设的IP地址黑名单和IP地址白名单,对请求方系统和/或服务方系统对应的IP地址进行权限控制;协议转换组件,用于对请求方系统或者服务方系统进行接入协议转换后接入ESB系统;动态路由组件,用于在接入ESB系统后进行动态路由处理,将接入的交易报文路由至ESB接出微服务模块。
在一些可能的实施例中,该总线系统,还可以包括:基础组件层和数据存储层;基础组件层包括如下中的任意一个或多个组件:缓存组件、数据访问组件、消息组件、日志组件、全局序列号组件;上述数据存储层包括如下中的任意一个或多个:关系型数据库RDB、消息队列MQ、分布式缓存Redis、分布式日志ES。
本发明实施例提供基于微服务分布式技术的ESB系统、介质和设备,该系统包括:外围系统接入ESB;ESB提供SDK方式嵌入微服务系统,或者独立部署接入接出模块化微服务拆分方式接入;遗留系统及微服务API治理能力统一管理。本发明实施例中,ESB系统作为中枢系统能兼容遗留异构系统、微服务技术化的系统间的交互,具备原有ESB的所有功能,同时“去中心化”的分布式部署方式,一方面解决性能无限扩展外,另一方面也可带来更大扩展性和稳定性价值。
以下再结合多个附图对本发明实施例的上述ESB系统进行更加详细的说明:
总体技术架构设计升级
如图1所示,ESB由单体向分布式微服务架构演化,该支持分布式微服务的ESB系统主要包括:
ESB服务层,用于提供ESB接入服务、ESB接出服务和ESB组合服务;
基础组件层,用于通用处理的公共组件或公共模块,给ESB系统的其他层(例如接入服务层、接出服务层)使用;
数据访问组件,读队列中的消息写入数据库;一个读写动作实际上是用到了两个组件,一个是消息组件,一个数据访问组件。
数据存储层,用于进行运行信息存储,日志流水写入MQ,在存储的过程中,会通过消息队列MQ(Message Queue)中转,即先写到消息队列MQ中进行缓存,再从消息队列MQ中读出来写入数据库中。REDIS对查出来的一些审计信息进行缓存,以提高查询效率。ES存储一些日志类的信息。
RDB:Relational Database,关系型数据库,用于存储服务配置信息和流水记录信息。其主要是存两类信息,第一类信息是ESB系统要读一些服务中注册的服务配置信息;第二类信息是预警或告警时记录的两个日志点或者4个日志点对应的流水告警信息。两个日志点是0点日志点和3点日志点,四个日志点是指:0点日志点、1点日志点、2点日志点和3点日志点。
关于统一服务治理监控端,如图1所示,在最底层的云平台之上,在图1中左侧三个层即ESB服务层、基础组件层、数据存储层一起构成服务运行平台(后台服务端),右侧是管理端,管理端与服务端相关联。关联起来包括三方面含义:第一块与注册相关的,例如服务配置和服务信息等。第二块是与服务治理相关和监控告警相关;如果是正常的,则可以查询日志流水,如果是不正常的,通过相应的规则进行预警。
在作为管理端的统一服务治理监控层可实现对服务端程序的可视化的操作界面,其是WEB程序,即管理端程序。数据库之上的均是应用程序。通过管理端配置一些信息,然后服务端读取这些配置信息才能做处理。服务端的运行的信息可以通过管理端来查看,当该运行信息不正常时,管理端进行预警或告警。
统一服务治理监控可以是一个独立的WEB管理系统。通过管理端,用户能够看到ESB系统的可视化信息,并且通过管理端配置相应的信息进去给服务端运行使用,服务端运行的数据通过管理端可以看到,当运行数据不正常时管理端进行告警。
云平台,用于该总线系统能够在云平台上部署,云平台是基础实施,在云平台之上的属于应用部分。
在一些实施例中,ESB服务层包括:ESB接入微服务、ESB接出微服务、以及ESB组合服务。
上述ESB接入微服务包括如下中的任意多个组件或模块:安全认证(IP黑白名单)、协议转换、动态路由、熔断降级、流量控制。
安全认证(IP地址黑白名单)组件,用于对接入系统IP做权限控制。具体地,安全认证组件,用于根据预设的IP地址黑名单和IP地址白名单,对请求方系统和/或服务方系统对应的IP地址进行权限控制;
预设的IP地址黑名单中记载了禁止访问ESB系统的IP地址集合。预设的IP地址白名单中记载了允许访问ESB系统的IP地址集合。当请求方系统和/或服务方系统的IP地址处于预设的IP地址白名单中并且不处于预设的IP地址黑名单中时,允许请求方系统和/或服务方系统访问ESB系统,否则,禁止(把绝)请求方系统和/或服务方系统访问ESB系统,阻止请求方系统和/或服务方系统的消息报文进入ESB系统的内部。
在接入层处理中,请求方系统是通过接入服务接进来,接入服务处理之后调用接出服务,再和具体的服务系统进行交互。
协议转换组件,用于对请求方系统或者服务方系统进行接入协议转换后接入ESB系统;ESB接入服务对接请求方系统。当外围系统,即ESB系统以外的请求方系统和服务方系统的使用的协议与ESB系统使用的内部协议不匹配时,执行协议转换处理。
动态路由组件,用于在接入ESB系统后进行动态路由处理,将接入的交易报文路由至ESB接出服务;ESB接出服务对接服务方系统,与服务方系统进行交互。
熔断降级组件,用于接入容错处理,即当检测到某一类错误频繁出现,则进行主动挡回处理,起到保护作用。
流量控制组件,用于为请求方系统申请流量资源。即向ESB系统内置的流控服务申请请求方系统对应的流量资源。在ESB接出服务中的流量控制组件,用于在接出后并且收到应答回来时,释放请求方系统对应的流量资源。
协议转换组件,用于外围系统做接入协议转换接入ESB,支持通讯协议和/或报文协议转换。
交易路由组件,用于接出可根据配置路由接出服务系统。
上述ESB接出微服务包括如下中的任意一个或多个组件或模块访问控制、流量控制、交易路由、文件传输、协议转换、订阅发布。流量控制组件,用于回收流量资源。交易路由组件,用于对交易报文进行路由处理。文件传输组件,用于与文件传输平台集成。协议转换组件,用于接出通讯协议及报文协议转换。订阅发布组件,用于一对多广播处理场景。
上述ESB组合服务包括:服务编排和事务处理。服务编排组件,用于:原子服务编排组合。其中,原子服务定义如下:原子是构成应用的不可再分解的基本服务单元,也是操作系统可以进行管控、权限分配的最小单元。本实施例中将服务分为两种:一种是原子服务(atomic service):不可在分解为更细粒度的服务;另一种是合成服务(compositeservice):由其它服务组合而成的服务。多个原子服务组合编排是指:将多个原子服务组合或组装在一起,最终形成一个新的服务。例如,存在A,B,C三个原子服务,通过服务编排能够形成一个新的D服务。服务编排方式可以是服务并行编排和服务串行编排。在服务串行编排场景中,A原子服务的输出直接变为B原子服务的输入,B原子服务的输出又变为C原子服务的输入。
事务处理组件,用于组合服务异常一致性处理。
上述基础组件层,用于作为通用处理的公共组件或公共模块,给ESB系统的其他层(例如接入服务层、接出服务层)使用。上述基础组件层包括如下中的任意一个或多个组件:缓存组件、数据访问组件、消息组件、日志组件、全局序列号组件。
缓存组件,用于加载通用配置信息。数据访问组件,用于访问应用数据库。消息组件,用于处理流水日志。日志组件,用于处理日志文件记录。全局序列号组件,用于处理流水号。
上述数据存储层包括如下中的任意一个或多个:RDB、MQ、Redis、ES等。分布式缓存(Redis)用于提升实时审计查询性能。分布式日志(Elasticsearch,ES)用于收集ESB接入服务和ESB接出服务分别对应的运行日志,从而可实现管理端在线日志查看功能。
上述统一服务治理监控层包括如下任意一个或多个组件:注册中心组件、服务管控组件(微服务管控平台)、服务治理组件、日志管理组件、监控预警组件。
注册中心(Eureka)组件,用于对ESB接入服务和ESB接出服务对应的服务实例进行注册。日志管理组件,用于查看在线日志。监控预警组件,用于监控告警,及时发现系统运行情况。监控预警组件包括但不限于:主机监控、模块监控、中间件Redis监控等。
服务管控组件包括如下任意一个或多个子组件:集群管理、实例管理、模块管理。集群管理,用于管理集群信息。实例管理,用于管理服务实例及实例模块启停处理。模块管理,用于管理接入接出模块信息。
上述云平台包括如下中的任意一种或多种:IaaS(Infrastructure-as-a-Service,基础设施即服务)或者PaaS(Platform-as-a-Service,平台即服务)或者CaaS(Communications-as-a-Service,通讯即服务或协作即服务)。在进一步的实施例中,云平台还可以包括:SaaS(Software-as-a-Service,软件即服务)、MaaS(Machine as aService,物联网即服务)。
支持的模式多样化
如图2所示,网关模式:通过网关实现请求方和服务方微服务改造及接入接出。其处理过程包括如下步骤:服务请求方系统远程调用分布式ESB的接入网关,然后内部去远程调用分布式ESB的接出网关,再接出网关远程调用具体的服务方系统。注册中心进行服务注册,这些接入服务和接出服务向注册中心注册,接入服务和接出服务可以是独立的微服务,在同一个进程内就是一个微服务,在两个进程内就是两个微服务。
如图3所示,SpringCloud服务框架模式:兼容已有springCloud架构微服务接入ESB。SpringCloud是一系列框架的有序集合,其是一套简单易懂、易部署和易维护的分布式系统开发工具包。
如图4所示,API(Application Programming Interface,应用程序接口)模式:ESB提供API嵌入到已有系统,将请求方和服务方接入到ESB系统。
API是一种嵌入方式,就是SDK(SDK,开发工具包)方式,这里进行了扩展,本实施例不仅仅支持SpringCloud服务架构,在未来也支持其他的一些架构的微服务,都能做技术上的一个接入和接出的适配处理。
本发明实施例中,ESB系统微服务API治理能力提升,兼容微服务架构后服务治理能力进一步完善。
模块化/组件化架构设计
ESB微服务采用模块化架构,同一个ESB微服务可以加载一个或多个ESB接入服务、ESB接出服务配置,每个接入服务、接出服务(接入网关、接出网关)都是一个单独模块,可以实现独立启动、停止、部署、卸载,从而实现应用可分、可合部署方式。
如图5所示,服务治理架构说明,从服务设计-服务优化-服务资产入册-服务运行平台-服务审计-服务优化,整个形成生态闭环自运营模式。其中服务运行平台是分布式微服务架构。
参阅图5,例如,一个服务接口有几个字段均确定了,这个时候就录入服务资源库了,录入库是通过本实施例的管理端将服务分册录入到服务资源库中,然后本实施例的服务运行平台,即图1中左侧的后台程序,统称为服务运行平台,服务运行平台读取这些配置进去的服务资产,然后根据这些读出来的服务资产包含的约束性条件进行路由处理。在上述处理中,本实施例会记录一些流水信息,通过这些流水信息获得服务审计的结果,来监测这些服务的运行质量,形成一个闭环,清楚获得服务的运行质量情况。最终反映出,当前运行的服务是否合理,是否符合预设的情形。本发明实施例针对这种分布式微服务,能够达到服务治理效果。
本实施例可实现从服务设计到服务落地到服务资源库中,以及监测服务运行情况,再根据服务运行情况的审计结果来反映服务的质量,从而达到服务治理的目的。
本实施例中,发明人考虑到在运行态中,发布到数据库中的服务资产数据,可能与早期设计态的预期不一致,这个不一致的情况是通过运行态的数据来进行佐证或检验。
例如,早期设计的时候服务设计三个字段是合理的,运行的时候去调用该服务时,发现这些系统也调用,那些系统也调用,它们之间的接口还可以再优化一下。或者,时间跑久了,某外围系统在每天快下班的时候,它响应时间都比较慢,或者说某个时间点它有规律地出现某种异常情况时,这种异常情形能被及时监测出来,从而请求相关的外围系统执行一些优化操作,从而达到服务优化的效果。
本发明实施例的ESB系统支持分布式微服务,并且可以对接入微服务和接出微服务对应的模块进行灵活的划分以及组合,从而实现可分可合的灵活部署。举例如下,ESB系统以外的外围系统(请求方系统和服务方系统)都是分级的,有些外围系统不是很重要,有些外围系统很重要,特别是像账务类的,这些系统不能停,停了则无法转账转,本发明实施例对这些重要的外围系统进行独立的部署,提供一个专用的接入模块来单独来处理它的交易,针对一些不是很重要的外围系统,例如交易量或报文量少于预设的阈值的,本发明实施例把它们合并处理。
如图6所示,可分可合的灵活部署设计,可根据业务实际情况进行服务实例分组部署。例如:分配柜面渠道接入实例接入ESB,再通过核心接出实例访问核心,实现柜面系统-ESB系统-核心系统三者之间的交互。接入服务和接出服务可根据前端系统和后端系统做模块划分。例如,当从柜面渠道接进来,可能要去找核心或找信贷,动态路由组件根据路由配置信息或对应关系,路由到相应的接出微服务。
参阅图6,发明实施例支持灵活部署,一方面将整个程序分为接入和接出两块,进一步地,还对接入进行分组,例如把网银系统分成一组,别的系统分成一组。第一次分是根据前后来分,第二次分是根据范围来分,即确定哪几个系统合并到一个接入服务模块,哪几个系统对接另外一个接入模块,从而达到灵活部署的目的。作为举例,对于重要性级别高于预设级别的重要系统单独配置独立的接入服务模块,对于其他一些交易量低于预设的交易量阈值,且重要性级别低于预设级别的次要系统,分配在一个次要系统组中,为其配置共用一个接入服务模块。
本发明实施例的ESB系统能够兼容以前的非微服务的传统模式系统。该ESB系统能够兼容处理原来的老ESB系统的接入方式。
本发明实施例的有益技术效果包括:
集中式ESB架构与分布式微服务技术架构并存背景下,快速进行了分布式ESB产品研发。ESB内部进行分布式微服务技术升级,同时模块化组件化设计实现应用可分、可合部署方式。基于自主产品研发,无第三方依赖。
基于本发明实施例提供基于微服务分布式技术的ESB系统,外围系统接入ESB系统,ESB系统提供SDK方式(例如SpringCloud服务框架模式和嵌入式应用程序接口API模式)嵌入微服务系统,或者,独立部署接入接出模块化微服务拆分方式接入;从而实现对遗留系统及微服务API治理能力统一管理。
本发明实施例中,ESB系统作为中枢系统能兼容遗留异构系统、微服务技术化的系统间的交互,具备原有ESB的所有功能,同时“去中心化”的分布式部署方式,一方面解决性能无限扩展外,另一方面也可带来更大扩展性和稳定性价值。
本发明实施例提供一种嵌入式方式的ESB系统,与现有技术不同,现有技术不具有嵌入式方式。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种支持分布式微服务的ESB系统,其特征在于,所述ESB系统包括ESB服务层和统一服务治理监控端;
所述ESB服务层包括:ESB接入微服务模块和ESB接出微服务模块;所述ESB接入微服务模块包括多个接入微服务组件,用于将至少一个请求方系统接入到所述ESB系统;所述ESB接出微服务模块包括多个接出微服务组件,用于与一个或多个服务方系统进行交互;
所述统一服务治理监控端包括:注册中心模块,用于对所述ESB接入微服务模块和所述ESB接出微服务模块进行注册;以及,服务管控模块,用于获取所述ESB服务层的运行信息,根据所述运行信息进行告警。
2.根据权利要求1所述的ESB系统,其特征在于,所述统一服务治理监控端包括:
可视化的WEB端操作界面,用于向所述ESB服务层输入配置信息,使所述ESB服务层根据所述配置信息进行运行;以及,显示获取的所述ESB服务层的日志流水信息;
监控预警模块,用于当根据所述ESB服务层的日志流水信息确定存在异常时,向所述可视化的WEB端操作界面输出告警信息;以及,当接收到的报文没有携带授权信息时,确定发出报文的请求方系统没有访问权限,并向所述请求方系统和所述可视化的WEB端操作界面返回用于指示未授权的提示信息;当接收到的报文具有授权信息时,进一步基于所述报文中携带的校验信息对所述报文进行校验,如果校验失败则拒绝所述请求方系统,并且向所述请求方系统和所述可视化的WEB端操作界面返回用于指示校验未通过的提示信息。
3.根据权利要求1所述的ESB系统,其特征在于,所述ESB系统支持网关模式、SpringCloud服务框架模式和嵌入式应用程序接口API模式。
4.根据权利要求2所述的ESB系统,其特征在于,所述可视化的WEB端操作界面,具体用于向所述ESB服务层输入服务资产信息;所述ESB服务层,具体用于读取所述服务资产信息,根据所述服务资产信息包含的约束性条件进行路由处理,将报文路由到相应的服务方系统。
5.根据权利要求2-4中任一项所述的ESB系统,其特征在于,所述统一服务治理监控端,还包括:服务治理模块,用于根据所述日志流水信息获得服务审计结果,根据所述服务审计结果确定所述服务运行质量变差时,向所述请求方系统和/或所述服务方系统输出用于指示执行优化操作的第一提示信息。
6.根据权利要求5所述的ESB系统,其特征在于,所述服务治理模块,具体用于当根据服务审计结果确定在历史预设时间段内中的响应时间大于预设的响应时间阈值的服务方系统,并向响应时间大于预设的响应时间阈值的服务方系统输出进行扩容的第二提示信息。
7.根据权利要求5所述的ESB系统,其特征在于,所述服务治理模块,还用于当根据服务审计结果确定在历史预设时间段内中的交易失败率大于预设的失败率阈值时,向所述请求方系统和/或所述服务方系统输出用于指示进行自行排查的第三提示信息。
8.根据权利要求2所述的ESB系统,其特征在于,所述服务管控模块,还用于:为重要性级别高于预设的第一级别阈值的请求方系统和服务方系统配置独立专用的接入微服务组件和接出微服务组件;以及,为重要性级别低于预设的第二级别阈值的多个请求方系统和多个服务方系统配置一个共享的接入微服务组件和一个共享的接出微服务组件;其中,所述第一级别阈值大于或等于所述第二级别阈值。
9.根据权利要求1所述的ESB系统,其特征在于,所述ESB接入微服务模块包括如下任意一个或多个组件:
安全认证组件,用于根据预设的IP地址黑名单和IP地址白名单,对所述请求方系统和/或所述服务方系统对应的IP地址进行权限控制;
协议转换组件,用于对所述请求方系统或者所述服务方系统的接入协议转换后接入ESB系统;
动态路由组件,用于在接入ESB系统后进行动态路由处理,将接入的交易报文路由至所述ESB接出微服务模块。
10.根据权利要求1所述的ESB系统,其特征在于,还包括:基础组件层和数据存储层;所述基础组件层包括如下中的任意一个或多个组件:缓存组件、数据访问组件、消息组件、日志组件、以及全局序列号组件;所述数据存储层包括如下中的任意一个或多个:关系型数据库RDB、消息队列MQ、分布式缓存Redis、以及分布式日志ES。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110338881.8A CN112732534B (zh) | 2021-03-30 | 2021-03-30 | 一种支持分布式微服务的esb系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110338881.8A CN112732534B (zh) | 2021-03-30 | 2021-03-30 | 一种支持分布式微服务的esb系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732534A true CN112732534A (zh) | 2021-04-30 |
CN112732534B CN112732534B (zh) | 2021-07-23 |
Family
ID=75596177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110338881.8A Active CN112732534B (zh) | 2021-03-30 | 2021-03-30 | 一种支持分布式微服务的esb系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732534B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114035887A (zh) * | 2021-10-13 | 2022-02-11 | 北京能科瑞元数字技术有限公司 | 基于容器技术的微服务一站式管控平台 |
CN114374735A (zh) * | 2021-12-30 | 2022-04-19 | 苏州中科先进技术研究院有限公司 | 一种微服务总线系统及块数据指挥调度平台 |
CN114500646A (zh) * | 2021-12-20 | 2022-05-13 | 上海浦东发展银行股份有限公司 | 一种去中心化的esb云平台系统及其服务调用方法 |
CN115150406A (zh) * | 2022-09-01 | 2022-10-04 | 江苏博云科技股份有限公司 | 跨数据中心分布式esb配置管理系统 |
CN115208874A (zh) * | 2022-07-15 | 2022-10-18 | 北银金融科技有限责任公司 | 一种基于银行核心的多通信协议分布式文件处理平台 |
CN117194164A (zh) * | 2023-09-15 | 2023-12-08 | 国能大渡河大数据服务有限公司 | 一种基于esb总线的信息集成监管平台及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108074076A (zh) * | 2017-12-08 | 2018-05-25 | 上海壹账通金融科技有限公司 | 基于esb的服务提供方法、装置、设备及可读存储介质 |
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
-
2021
- 2021-03-30 CN CN202110338881.8A patent/CN112732534B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
CN108074076A (zh) * | 2017-12-08 | 2018-05-25 | 上海壹账通金融科技有限公司 | 基于esb的服务提供方法、装置、设备及可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114035887A (zh) * | 2021-10-13 | 2022-02-11 | 北京能科瑞元数字技术有限公司 | 基于容器技术的微服务一站式管控平台 |
CN114500646A (zh) * | 2021-12-20 | 2022-05-13 | 上海浦东发展银行股份有限公司 | 一种去中心化的esb云平台系统及其服务调用方法 |
CN114500646B (zh) * | 2021-12-20 | 2024-04-26 | 上海浦东发展银行股份有限公司 | 一种去中心化的esb云平台系统及其服务调用方法 |
CN114374735A (zh) * | 2021-12-30 | 2022-04-19 | 苏州中科先进技术研究院有限公司 | 一种微服务总线系统及块数据指挥调度平台 |
CN115208874A (zh) * | 2022-07-15 | 2022-10-18 | 北银金融科技有限责任公司 | 一种基于银行核心的多通信协议分布式文件处理平台 |
CN115208874B (zh) * | 2022-07-15 | 2024-03-29 | 北银金融科技有限责任公司 | 一种基于银行核心的多通信协议分布式文件处理平台 |
CN115150406A (zh) * | 2022-09-01 | 2022-10-04 | 江苏博云科技股份有限公司 | 跨数据中心分布式esb配置管理系统 |
CN117194164A (zh) * | 2023-09-15 | 2023-12-08 | 国能大渡河大数据服务有限公司 | 一种基于esb总线的信息集成监管平台及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112732534B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112732534B (zh) | 一种支持分布式微服务的esb系统 | |
CN109559258B (zh) | 教育资源公共服务系统 | |
US10360563B1 (en) | Architecture for a system and method for work and revenue management | |
US8489742B2 (en) | System and method for work management | |
US9191380B2 (en) | System and method for managing information technology models in an intelligent workload management system | |
CN108647265B (zh) | 基于多平台数据交互式系统 | |
US20170337095A1 (en) | Service based information technology platform | |
CA2621946C (en) | Improvements in and relating to service oriented architecture | |
CN109191008A (zh) | 一种用于水产品质量安全监管系统的微服务框架系统 | |
CN103297381A (zh) | 一种基于插件的业务访问方法及其系统 | |
EP3090329A1 (en) | Event-driven data processing system | |
CN104168333A (zh) | Proxzone服务平台的工作方法 | |
CN112486466B (zh) | 一种基于微服务架构的快速通用基础框架实现方法 | |
CN110636108B (zh) | 一种用于电力计量的微服务架构及其实现方法 | |
CN113127343A (zh) | 一种基于微服务架构的电网代码测试分析系统 | |
CN115695139A (zh) | 一种基于分布式鲁棒增强微服务系统架构的方法 | |
US7668093B1 (en) | Architecture for balancing workload | |
US20070299849A1 (en) | Logging of application messages | |
Yan et al. | Application of microservice architecture in commodity erp financial system | |
Little et al. | Another look at the middleware for dependable distributed computing | |
CN117609973B (zh) | 一种注册中心纳管方法、系统、装置及服务器 | |
KR102668325B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
AU2013203291B2 (en) | Systems and methods for private cloud computing | |
KR102669668B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
Forero Velasco | Microservices for a carrying hailing service system: management of cargo transports in real-time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |