本说明书一个或多个实施例涉及系统间通信
技术领域:
:,尤其涉及一种分布式总线架构方法、装置和电子设备。
背景技术:
::随着it应用架构的发展,应用系统的复杂度不断升高,应用间通信需求越来越频繁,应用间通信存在通信协议繁多难以集成、交互接口繁冗难以复用、业务服务繁杂难以管理等问题。面向服务的架构将应用系统间解耦,通过约定良好的服务接口和契约来进行通信,并提供统一规范的服务治理能力。现有技术中基于企业服务总线来实现面向服务的架构,通过承接所有通信请求,并对通信请求进行协议适配、认证鉴权、格式转换、服务组合、流量控制、路由转发等处理,完成应用间的信息交换,成为应用系统间的通信中枢。由于企业服务总线在实现上需要承载所有应用系统的服务请求流量,当应用系统规模较大、应用间通信流量超多时,总线易成为性能瓶颈。同时,当总线出现问题时,将影响所有服务请求;即使实现了集群方案,也存在雪崩效应的风险,即当一个节点出现问题时,该问题情况会被负载至其他节点,进而影响其他节点正常,最终导致整个总线集群不可用。技术实现要素:有鉴于此,本说明书一个或多个实施例的目的在于提出一种分布式总线架构方法、装置和电子设备。基于上述目的,本说明书一个或多个实施例提供了一种分布式总线架构方法,包括:将总线集群进行拆分,分隔为不少于两个独立的节点集合;对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理;根据分流策略将服务分配给对应独立的节点集合处理。基于同一发明构思,本说明书一个或多个实施例还提供了一种分布式总线架构装置,包括:拆分模块,被配置为将总线集群进行拆分,分隔为不少于两个独立的节点集合;控制模块。被配置为对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理;处理模块,被配置为根据分流策略将服务分配给对应独立的节点集合处理。基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。从上面所述可以看出,本说明书一个或多个实施例提供的分布式总线架构方法、装置和电子设备,基于软负载具有的灵活的路由能力和流量控制能力对企业服务总线进行架构拆分和流量控制,解决了传统总线服务架构下的雪崩效应风险,使得在服务发生问题时,约束其影响范围,并有应急手段进行隔离控制;同时提升应急效率,具备便捷的管控方式,可快速完成扩容、隔离、流控等应急手段的实施。附图说明为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本说明书一个或多个实施例的分布式总线架构方法流程图;图2为本说明书一个或多个实施例的分布式总线架构工作方式示意图;图3为本说明书一个或多个实施例的分布式总线架构装置的结构示意图;图4为本说明书一个或多个实施例的电子设备结构示意图。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。如
背景技术:
:部分所述,现有的企业服务总线架构方案还难以满足业务需要。申请人在实现本公开的过程中发现,现有的基于企业服务总线来实现面向服务的架构方案存在的主要问题在于:企业服务总线在实现上需要承载所有应用系统的服务请求流量,当应用系统规模较大、应用间通信流量超多时,总线易成为性能瓶颈。同时,当总线出现问题时,将影响所有服务请求;即使实现了集群方案,也存在雪崩效应的风险,即当一个节点出现问题时,该问题情况会被负载至其他节点,进而影响其他节点正常,最终导致整个总线集群不可用。有鉴于此,本说明书一个或多个实施例提供了一种分布式总线架构方案,具体的,首先将企业服务总线通过backend的设置进行拆分,分隔为面向不同服务方的独立节点集合和应急节点集合,然后对节点集合中的各节点进行健康探测和并发流控的处理,保证各个节点健康和负载不超限,最后通过frontend的设置实现分布式架构分流,对应的节点集合处理对应的服务。可见,本说明书一个或多个实施例提供的分布式总线架构方法、装置和电子设备,基于软负载对企业服务总线进行架构拆分,解决了传统总线服务架构下的雪崩效应风险,使得在服务发生问题时,约束其影响范围,并有应急手段进行隔离控制;同时提升应急效率,具备便捷的管控方式,可快速完成扩容、隔离、流控等应急手段的实施。以下,通过具体的实施例来详细说明本说明书一个或多个实施例的技术方案。参考图1,本说明书一个实施例的分布式总线架构方法,包括以下步骤:步骤s101、通过backend的设置将总线集群进行拆分,分隔为不少于两个独立的节点集合。本步骤中,将总线集群拆分成适合服务数量的独立节点集合,每个独立的节点集合负责不同的服务请求,独立的节点集合可以对应服务调用方的服务请求,也可以处理对应服务提供方提供的服务,还可以对有问题的服务请求进行应急隔离处理。显然,独立节点集合处理的具体服务可以根据具体的实施需要而选择。步骤s102、对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理。本步骤中,所述健康检测包括:在所述节点集合的基础上,为每个独立节点配置http七层健康探测,向指定的16600端口发送http健康探测请求,若收到“successed”的响应,则判定所述独立节点健康,可将交易请求分发到所述独立节点,否则判定为所述独立节点不健康,不再将交易请求分发到所述独立节点。所述并发流控包括:为所述独立的节点集合中的独立节点配置最大并发请求数,当并发请求大于所述最大并发请求数时,所述独立节点拒绝超出的请求或令超出的请求排队等候。步骤s103、根据分流策略将服务分配给对应独立的节点集合处理。在本步骤中,所述分流策略包括:按照服务提供方进行分发,获取请求消息的url,通过匹配路径来识别是否请求的是服务提供方的服务,若是的话,则将所述请求分发至服务提供方的节点集合;按照服务请求方进行分发,获取请求消息的httpheader信息,根据所述httpheader信息判断是否是服务请求方发来的请求,若是的话,则将所述请求分发至对应的服务请求方的节点集合。可见,在本实施例中,所述服务总线通过架构拆分,有效缩小了问题域影响范围,保障关键应用的资源通道,降低生产异常对业务带来的影响;快速发现异常点,并实现灵活、便捷的路由规则变更与流量隔离能力,可有效隔离故障源,提前控制风险流量不进入其他运行节点应发故障,最终实现平台整体的高可用性。作为一个可选的实施例,对于前述实施例中的所述将总线集群进行拆分,给出一个具体的拆分场景,在本实施例中,有两个服务调用方consumer1、consumer2,一个服务提供方provider1。对服务调用方consumer1、consumer2,以及服务提供方provider1三个系统所涉及的服务进行拆分,例如provider1提供的服务由指定的两个esb节点来处理,consumer1、consumer2调用其他服务则分别指定另外两个esb节点来处理。因此分别定义三个节点集:provider1_nodelist、consumer1_nodelist、consumer2_nodelist,在节点集中分别定义各自的节点信息,待接收到服务流量时,将流量按规则分发到不同的esb节点,由此完成拆分定义。作为一个可选的实施例,对于前述实施例中的所述根据分流策略将服务分配给对应独立的节点集合处理,给出一个具体的分流场景,在本实施例中,有两个服务调用方consumer1、consumer2,一个服务提供方provider1。在分流过程中,获取请求消息的url,通过匹配路径是否以“/esb/provider1”开头来识别是否请求的provider1的服务,若是的话,则将其分发至provider1_nodelist节点集合。获取请求消息的httpheader信息,通过判断“esb-orisys”字段的值是否以“consumer1”或“consumer2”开头来识别是否是consumer1或consumer2发来的请求,若是的话,则将其分发至对应的consumer1_nodelist或consumer2_nodelist节点集合。作为一个可选的实施例,对于前述实施例中的所述节点集合可以进行独立监控,当节点集合性能不足时,向所述节点集合中添加一个或多个拓展独立节点,实现所述节点集合的横向扩容。作为一个可选的实施例,对于前述实施例中所述分流策略还包括:流量拒绝,若服务调用方的服务请求有问题,则拒绝所述服务调用方发起的所有服务请求,以保证其他应用的正常服务交互;流量隔离及转移,若服务调用方的服务请求有问题,但又需要维系一部分服务能力,不能完全拒绝交易,则将所述服务调用方的请求转发配置到所述应急节点集合中,所述应急节点集合与其他节点集合集完全隔离,即使出现问题也不影响其他应用间的服务交互。作为一个可选的实施例,对于前述实施例中的所述节点,通过haproxy的stick-table特性,可存储指定时间1分钟(即http_req_rate(1m))的访问统计数据;同时,设定判断规则:若超过10000次则匹配规则request_too_fast。若某一分钟交易量匹配上该规则,则通过http-requestdeny拒绝该交易请求,不再向后端esb节点分发,以此实现流控的效果。作为一个可选的实施例,参考图2,consumer1、consumer2、consumer3和其他应用系统的服务请求发送到软负载,软负载将不同的请求进行区分。将不同请求发送到划分好的各自对应的节点中,其中,将有问题的服务请求发送到应急节点,请求provider服务的服务请求发送大管理控制台的节点。来自dmz的服务请求发送到f5中,通过f5发送到apache中然后分发至对应的dmz节点进行处理。专线的服务请求发送到f5中然后分发至对应的外联节点进行处理。各节点收到对应的服务请求后调取provider系统的对应功能应用然后反馈到对应的节点,实现服务分配和流量控制的功能。需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种分布式总线架构装置。参考图3,所述分布式总线架构装置,包括:拆分模块301,被配置为将总线集群进行拆分,分隔为不少于两个独立的节点集合;控制模块302。被配置为对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理;处理模块303,被配置为根据分流策略将服务分配给对应独立的节点集合处理。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。上述实施例的装置用于实现前述任一实施例中相应的分布式总线架构方法,并且具有相应的方法实施例的有益效果,在此不再赘述。基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的分布式总线架构方法。图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。上述实施例的电子设备用于实现前述任一实施例中相应的分布式总线架构方法,并且具有相应的方法实施例的有益效果,在此不再赘述。所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种分布式总线架构方法,其特征在于,包括:
将总线集群进行拆分,分隔为不少于两个独立的节点集合;
对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理;
根据分流策略将服务分配给对应独立的节点集合处理。
2.根据权利要求1所述的方法,其特征在于,所述将总线集群进行拆分,分隔为不少于两个独立的节点集合,具体包括:
根据服务调用方和服务提供方所涉及的服务,将总线集群拆分为对应的节点集合,另外还拆分出应急节点集合;每个所述节点集合分配不少于一个独立节点,在对应的所述节点集合中分别定义各自的节点信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
对所述节点集合进行独立监控,当节点集合的性能不足时,向所述节点集合中添加一个或多个拓展独立节点。
4.根据权利要求1所述的方法,其特征在于,所述对所述独立的节点集合中的独立节点进行健康检测,具体包括:
在所述节点集合的基础上,为每个独立节点配置http七层健康探测,向指定的16600端口发送http健康探测请求,若收到successed的响应,则判定所述独立节点健康,将交易请求分发到所述独立节点;否则,判定为所述独立节点不健康,不再将交易请求分发到所述独立节点。
5.根据权利要求1所述的方法,其特征在于,所述对所述独立的节点集合中的独立节点进行并发流控处理,具体包括:
为所述独立的节点集合中的独立节点配置最大并发请求数,当并发请求大于所述最大并发请求数时,所述独立节点拒绝超出的请求或令超出的请求排队等候。
6.根据权利要求2所述的方法,其特征在于,所述根据分流策略将服务分配给对应独立的节点集合处理,具体包括:
按照服务提供方进行分发,获取请求消息的url,通过匹配路径来识别是否请求的是服务提供方的服务,若是,则将所述请求分发至服务提供方对应的节点集合;
按照服务请求方进行分发,获取请求消息的httpheader信息,根据所述httpheader信息判断是否是服务请求方发来的请求,若是,则将所述请求分发至对应的服务请求方对应的节点集合。
7.根据权利要求1所述的方法,其特征在于,所述节点集合均保持统一的配置,各独立节点保持逻辑一致,通过自服务平台和管理控制台统一管理所有节点。
8.根据权利要求2所述的方法,其特征在于,所述分流策略还包括:
若服务调用方的服务请求有问题,则拒绝所述服务调用方发起的所有服务请求,以保证其他应用的正常服务交互;
若服务调用方的服务请求有问题,但又需要维系一部分服务能力,则将所述服务调用方的请求转发配置到所述应急节点集合中;其中,所述应急节点集合与其他节点集合集完全隔离。
9.一种分布式总线架构装置,其特征在于,包括:
拆分模块,被配置为将总线集群进行拆分,分隔为不少于两个独立的节点集合;
控制模块。被配置为对所述独立的节点集合中的独立节点进行健康检测,对所述独立的节点集合中的独立节点进行并发流控处理;
处理模块,被配置为根据分流策略将服务分配给对应独立的节点集合处理。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
技术总结本说明书一个或多个实施例提供一种分布式总线架构方法、装置和电子设备;所述方法包括首先将企业服务总线进行拆分,分隔为面向不同服务方的独立节点集合和应急节点集合,然后对节点集合中的各节点进行健康探测和并发流控的处理,保证各个节点健康和负载不超限,最后实现分布式架构分流,对应的节点集合处理对应的服务。该发明主要解决传统总线服务架构下的雪崩效应风险问题,使得在问题发生时,约束其影响范围,并有应急手段对问题进行隔离控制;同时提升应急效率,快速完成扩容、隔离、流控等应急手段的实施。
技术研发人员:肖晟;彭晓刚;许艳丽;王东;梁文佳
受保护的技术使用者:中国人寿保险股份有限公司
技术研发日:2020.11.16
技术公布日:2021.03.12