基于Tuxedo的负载均衡方法、系统、装置、设备及存储介质与流程

文档序号:17548166发布日期:2019-04-30 18:00阅读:505来源:国知局
基于Tuxedo的负载均衡方法、系统、装置、设备及存储介质与流程

本申请涉及通信技术领域,尤其涉及基于tuxedo的负载均衡方法、系统、装置、设备及存储介质。



背景技术:

tuxedo(transactionforunixhasbeenextendedfordistributedoperation)为分布式操作的unix事务/业务系统,是bea公司的一个客户终端/服务器的“中间件”产品,它可以分别被安装在终端设备和服务器上,在终端设备和服务器之间进行调节,以保证正确地处理事务/业务。

负载均衡技术指的是将负载(事务/业务)进行平衡分摊到多个操作单元上执行的技术,以增加网络数据的处理能力、提高网络的灵活性和可用性。

但是,目前并没有基于tuxedo进行负载均衡的方案。



技术实现要素:

有鉴于此,本申请提供一种基于tuxedo的负载均衡方法、系统、装置、设备及存储介质。

在本申请的第一方面,提供一种基于tuxedo的负载均衡方法,所述方法运用在基于tuxedo的负载均衡系统上,所述系统包括:安装在终端设备上的tuxedo客户端,至少两个安装在不同服务器上的tuxedo服务端,以及连接在tuxedo客户端与至少两个tuxedo服务端之间安装在负载均衡器上的负载均衡端,其中,各tuxedo服务端配置不同的wsh端口范围;

所述方法包括:

所述tuxedo客户端向负载均衡端发送业务请求;

所述负载均衡端接收到所述业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;

所述tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

所述tuxedo客户端根据返回的所述wsh端口构造业务报文,将所述业务报文发送给负载均衡端;

所述负载均衡端根据接收到的业务报文的wsh端口,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

在一些例子中,所述方法还包括:所述负载均衡端将各tuxedo服务端环形排序;

所述选中的tuxedo服务端为负载均衡端收到的上一业务请求对应的tuxedo服务端的下一tuxedo服务端。

在一些例子中,所述tuxedo服务端提供的服务包括wsl服务;

所述wsh端口由选中的tuxedo服务端的wsl服务协商得到。

在一些例子中,所述负载均衡端提供的服务包括wsl虚拟服务,以及与所述tuxedo服务端数量等同的wsh虚拟服务,其中,各wsh虚拟服务的端口范围分别配置为不同的tuxedo服务端对应的wsh端口范围;

所述根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端,由所述wsl虚拟服务执行;

所述根据接收得到的业务报文的wsh端口,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,包括:

当接收到的业务报文的wsh端口命中一wsh虚拟服务的端口范围时,被命中的wsh虚拟服务将所述业务报文转发给对应的tuxedo服务端。

在一些例子中,所述负载均衡端提供的服务包括一wsl虚拟服务以及一wsh虚拟服务;

所述根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端,由所述wsl虚拟服务执行;

所述根据接收得到的业务报文的wsh端口,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,由所述wsh虚拟服务执行。

在本申请的第二方面,提供一种基于tuxedo的负载均衡系统,所述所述系统包括:

安装在电子设备上的tuxedo客户端,用于向负载均衡端发送业务请求;

安装在负载均衡器上的负载均衡端,用于接收到所述业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;

安装在服务器上的tuxedo服务端,用于接收到负载均衡端分配的业务请求后,将协商的wsh端口返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

所述tuxedo客户端,还用于根据返回的所述wsh端口构造业务报文,将所述业务报文发送给负载均衡端;

所述负载均衡端,还用于根据接收到的业务报文的wsh端口,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

在本申请的第三方面,提供一种基于tuxedo的负载均衡方法,所述方法运用在安装在负载均衡器上的负载均衡端上,所述方法包括:

接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

再本申请的第四方面,提供一种基于tuxedo的负载均衡装置,所述装置包括:

分配模块,用于接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

转发模块,用于接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

在本申请的第五方面,提供一种负载均衡器,包括:

处理器;以及

存储器,所述存储器被配置成存储计算机程序,所述计算机程序被配置成被所述处理器执行如上述第三方面所述的方法的操作。

在本申请的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行如上述第三方面所述方法的操作。

本申请实施例提供一种基于tuxedo的负载均衡方案,该方案运行的系统包括:安装在终端设备上的tuxedo客户端,至少两个安装在不同服务器上的tuxedo服务端,以及连接在tuxedo客户端与至少两个tuxedo服务端之间安装在负载均衡器上的负载均衡端。该方案首先通过将tuxedo客户端发送的业务请求发送给负载均衡端,并由负载均衡端根据各tuxedo服务端处理业务的情况,将该业务请求分配给以选中的tuxedo服务端;该选中的tuxedo服务端将协商后的wsh端口返回给发送请求的所述tuxedo客户端,以使tuxedo客户端通过wsh端口发送业务报文与真实的tuxedo服务进行通信,使真实的tuxedo服务处理该业务,以达到每项业务被合理地分配给各真实的tuxedo服务进行处理,实现负载均衡,以增加网络数据的处理能力、提高网络的灵活性和可用性。

附图说明

图1为本申请一示例性实施例示出的一种基于tuxedo的负载均衡系统的示意图;

图2为本申请一示例性实施例示出的一种基于tuxedo的负载均衡方法的流程图;

图3为本申请一示例性实施例示出的另一种基于tuxedo的负载均衡系统的示意图;

图4为本申请一示例性实施例示出的另一种基于tuxedo的负载均衡系统的示意图;

图5为本申请一示例性实施例示出的另一种基于tuxedo的负载均衡方法的流程图;

图6为本申请实施例示例性示出的一种基于tuxedo的负载均衡装置的示意图;

图7为本申请实施例示例性示出的一负载均衡器的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参照图1,为本申请实施例示意性示出的一基于tuxedo的负载均衡系统示意图,所述系统包括至少一台终端设备110、至少两台服务器设备120及130,以及连接在终端设备110和服务器设备120及130之间的负载均衡器140,所述终端设备110上安装有一tuxedo客户端,所述服务器设备120及130上分别安装有tuxedo服务端,所述负载均衡器140上安装有负载均衡端。上述不同的tuxedo服务端配置不同的wsh端口范围,例如,安装在服务器设备120上的tuxedo服务端a的wsh端口范围为c-d,安装在服务器设备130上的tuxedo服务端b的wsh端口范围为e-f,其中c-d与e-f不存在交集。

本申请实施例所述的tuxedo服务端有两个负责通讯的进程,分别是wsl(workstationlistener)服务和wsh(workstationhandler)服务。其中,wsl服务是tuxedo系统提供的工作站监听服务进程,它监听一个指定的端口。wsh服务是tuxedo系统自带的一个服务进程。在一些例子中,wsl服务的数量可以进行配置,典型的配置一般两或三个;wsh服务可以有若干个。在一些例子中,所述各tuxedo服务端配置不同的wsl监听端口。

本申请实施例所述的终端设备是具有通信功能的电子设备,例如智能手机、电脑、平板或车载终端等。本申请不限制终端设备的类型。所述电子设备上的操作系统可以是linux系统。

参照图2,为本申请实施例示意性示出的一种基于tuxedo的负载均衡方法的流程图,所述方法包括:

tuxedo客户端执行s210:向负载均衡端发送业务请求。

所述负载均衡端执行s220:接收到所述业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端。

所述tuxedo服务端执行s230:接收到负载均衡端分配的业务请求后,将协商的wsh端口返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围。

所述tuxedo客户端执行s240:根据返回的所述wsh端口构造业务报文,将所述业务报文发送给负载均衡端。

所述负载均衡端执行s250:根据接收到的业务报文的wsh端口,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行s260:执行所述业务。

至此,本申请实施例提出的方法首先通过将tuxedo客户端发送的业务请求发送给负载均衡端,并由负载均衡端根据各tuxedo服务端处理业务的情况,将该业务请求分配给以选中的tuxedo服务端;该选中的tuxedo服务端将协商后的wsh端口返回给发送请求的所述tuxedo客户端,以使tuxedo客户端通过wsh端口发送业务报文与真实的tuxedo服务进行通信,使真实的tuxedo服务处理该业务,以达到每项业务被合理地分配给各真实的tuxedo服务进行处理,实现负载均衡,以增加网络数据的处理能力、提高网络的灵活性和可用性。

在一些例子中,负载均衡端可以通过轮询的方式实现上述步骤s220中的选中tuxedo服务端,具体选中tuxedo服务端的步骤如下:

所述负载均衡端将各tuxedo服务端环形排序;

所述选中的tuxedo服务端为负载均衡端收到的上一业务请求对应的tuxedo服务端的下一tuxedo服务端。

例如参照图1中,两个服务器设备120及130上分别安装有tuxedo服务端a和tuxedo服务端b,环形排列顺序是:tuxedo服务端a→tuxedo服务端b→tuxedo服务端a……;负载均衡端将上一业务请求分配给tuxedo服务端b,那么收到本次业务请求后,将本次业务请求分配给tuxedo服务端a,以使业务请求被较平均地分配给各tuxedo服务端进行处理,最大化地合理利用服务器资源进行业务处理。

在一些例子中,所述tuxedo服务端提供的服务包括wsl服务;图2中步骤s230具体可以是:所述wsl服务与负载均衡端进行通信,接收到负载均衡端分配的业务请求后,该wsl服务协商一wsh端口,并将协商的wsh端口返回给发送请求的所述tuxedo客户端,以使所述tuxedo客户端获得属于被选中的tuxedo服务端配置的wsh端口范围的wsh端口号,以保证业务被顺利执行。

在第一类例子中,参照图3,所述负载均衡端320提供的服务包括wsl虚拟服务321及wsh虚拟服务322,所述wsh虚拟服务322的数量与所述tuxedo服务端350的数量等同,其中,各wsh虚拟服务320的端口范围分别配置为不同的tuxedo服务端对应的wsh端口范围。例如以两个tuxedo服务端为例,参照图3,tuxedo服务端a351的wsh端口范围被配置为c-d和tuxedo服务端b352的wsh端口范围被配置为e-f,其中,c-d与e-f没有交集。那么,负载均衡端320提供一wsl虚拟服务321,以及2个wsh虚拟服务322,其中一wsh虚拟服务a的端口范围被配置为tuxedo服务端a的c-d,另一wsh虚拟服务b的端口范围被配置为tuxedo服务端b的e-f。

基于第一类例子,具体实现基于tuxedo的负载均衡方法如下:依然参照图3,负载均衡端320的各wsh虚拟服务的端口范围配置完成后,tuxedo客户端310执行步骤s210后,由所述wsl虚拟服务321执行步骤s220;接着选中的tuxedo服务端(例如服务端352)执行s230,所述tuxedo客户端310执行步骤s240后,负载均衡端320执行s250具体包括:接收到的业务报文后,判断所述业务报文中携带的端口号是否命中wsh虚拟服务的端口范围,若命中一wsh虚拟服务的端口范围,则被命中的wsh虚拟服务将所述业务报文转发给对应的tuxedo服务端。例如,参照图3,所述业务报文中携带的端口号属于c-d,说明命中wsh虚拟服务a的端口范围,那么wsh虚拟服务a将所述业务报文转发给tuxedo服务端a。

上述第一类实施例虽然较好地解决了负载均衡的问题,但是负载均衡端的数据运行量较大,为了优化第一类实施例,在第二类实施例中,参照图4,所述负载均衡,420提供的服务包括一wsl虚拟服务421以及一wsh虚拟服务422;所述wsl虚拟服务421负载所有的tuxedo服务端451-453的wsl服务;所述wsh虚拟服务422负载所有的tuxedo服务端451-453的wsh服务,并且端口范围设置为所有tuxedo服务端451-453的wsh端口范围,例如以仅有两个tuxedo服务端a和b为例:tuxedo服务端a451的wsh端口范围被配置为c-d和tuxedo服务端b452的wsh端口范围被配置为e-f,其中,c-d与e-f没有交集。那么,负载均衡端420提供的wsh虚拟服务422端口范围被配置为c-d以及e-f。

基于第二类例子,具体实现基于tuxedo的负载均衡方法如下:依然参照图4,负载均衡端420的各wsh虚拟服务的端口范围配置完成后,tuxedo客户端410执行步骤s210后,由所述wsl虚拟服务421执行步骤s220;接着选中的tuxedo服务端(例如服务端452)执行s230,所述tuxedo客户端410执行步骤s240后,wsh虚拟服务422执行s250。

在一些例子中,第一类实施例和第二类实施例中的所述wsl虚拟服务可以开启端口转换,端口可配置为任意一个端口号;所述wsh虚拟服务可以禁用端口转换。

在一些例子中,第一类实施例和第二类实施例中,tuxedo服务端的wsl服务可以在配置中增加一个外部网络地址的参数,ip设置为一虚拟ip,端口配置为任意值,以使tuxedo客户端经由均衡配置端通过该虚拟ip与获得的wsh端口号与tuxedo服务端建立连接。

作为一个具体的例子,tuxedo服务端可以通过如下方式进行wsl配置:

wslsrvgrp=group1srvid=10

clopt="-a---n//10.11.58.4:4200-m2-m5-x2

-h//10.11.88.88:1111-p4444-p4445"

其中,-n为wsl服务的监听地址,10.11.58.4:4200指的是指定wsl服务用来接受来自wsc(workstationclient)的连接的网络地址;

-m,-m,-x分别表示wsh服务启动的最大可同时处理的并发请求数、wsh服务启动的最小可同时处理的并发请求数,及每个wsh服务可同时处理的并发请求数;

"-m"*"-x"=maxwsclients,表示运行连接的最大客户端数量;

-p表示wsh服务分配的开始端口;

-p表示wsh服务分配的结束端口;

例如:-p4444-p4445指的是:指定wsh端口范围为4444-4445;

-h表示外部网络地址,将与wsh网络地址结合,生成wsc用于连接到wsh进程的wsh外部网络地址。它与-n选项具有相同的格式,不同之处在于它将端口号替换为m个字符,表示组合网络地址的位置将从wsh网络地址复制。上述例子中wsc将通过10.11.88.88:4444-4445与wsh建立连接。

一个具体的例子中,参照图5,为本申请实施例示意性示出的另一种基于tuxedo的负载均衡方法,所述方法运用在安装在负载均衡器上的负载均衡端上,所述方法包括:

s510:接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

s520:接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

需要说明的是,图5各步骤的具体实现方式可以参见前述实施例,此处不再赘述。

参见图6所示,基于tuxedo的负载均衡装置600包括:

分配模块610,用于接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

转发模块620,用于接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

图6中基于tuxedo的负载均衡装置的实施例可以应用在负载均衡器上。装置实施例可以通过程序实现,也可以通过硬件或者软硬件结合的方式实现。以程序实现为例,作为一个逻辑意义上的装置,是通过其所在负载均衡器的处理器将可读存储介质中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请基于tuxedo的负载均衡装置所在负载均衡器的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的负载均衡器通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。处理器被用于执行:

接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

此外,本申请实施例图5示出的基于tuxedo的负载均衡流程还可以被包括在计算机可读存储介质中,该存储介质可以与执行指令的处理设备连接,该存储介质上存储有基于tuxedo的负载均衡控制逻辑对应的机器可读指令,这些指令能够被处理设备执行,上述机器可读指令用于实现如下操作:

接收到tuxedo客户端发送的业务请求后,根据各tuxedo服务端处理业务请求的情况,将所述业务请求分配给一选中的tuxedo服务端;以使选中的tuxedo服务端接收到负载均衡端分配的业务请求后,将协商的wsh端口经由负载均衡端返回给发送请求的所述tuxedo客户端,其中,所述wsh端口属于所述tuxedo服务端配置的wsh端口范围;

接收tuxedo客户端根据所述wsh端口构造的业务报文,将所述业务报文转发给与所述wsh端口对应的tuxedo服务端,以使所述tuxedo服务端执行所述业务。

在本申请实施例中,计算机可读存储介质可以是多种形式,比如,在不同的例子中,所述机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。特殊的,所述的计算机可读介质还可以是纸张或者其他合适的能够打印程序的介质。使用这些介质,这些程序可以被通过电学的方式获取到(例如,光学扫描)、可以被以合适的方式编译、解释和处理,然后可以被存储到计算机介质中。

对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1