CN108512865A - 一种Java应用服务器的EJB容器系统的数据传输方法及装置 - Google Patents
一种Java应用服务器的EJB容器系统的数据传输方法及装置 Download PDFInfo
- Publication number
- CN108512865A CN108512865A CN201710100580.5A CN201710100580A CN108512865A CN 108512865 A CN108512865 A CN 108512865A CN 201710100580 A CN201710100580 A CN 201710100580A CN 108512865 A CN108512865 A CN 108512865A
- Authority
- CN
- China
- Prior art keywords
- data transfer
- server cluster
- application server
- transfer request
- data
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种Java应用服务器的EJB容器系统的数据传输方法及装置。该方法包括:接收用户触发的多个并发的数据传输请求;根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。本发明实施例对各个应用服务器集群实例设置最大的并发的数据传输请求的数目,在分发并发的数据传输请求时,当分发到某个应用服务器集群实例上的并发的数据传输请求的数目达到最大的并发的数据传输请求的数目时,就不会再将其他的数据传输请求分配给该应用服务器集群实例,避免客户端瘫痪。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种Java应用服务器的EJB容器系统的数据传输方法及装置。
背景技术
高可用性(High availability):单一服务器的解决方案并不是一个健壮方式,因为容易出现单点故障,在单一服务器出现故障后会导致部署在服务器上的业务系统的服务出现中断。一些关键的交易系统、通信系统不允许出现业务中断的现象,这些系统提供的服务需要保证在任何时间都可以访问并在可预期的合理的时间周期内有响应。集群方案通过使用多台服务器提供相同的服务来组建集群,使得其中一台服务器失效后仍能由集群中其他服务器实例提供服务,从而获得高的可用性。
负载均衡(Load balancing):负载均衡是集群的一项关键技术,通过把请求分发给不同的服务器,从而获得高可用性和较好的性能。负载均衡器需要使用一定的负载均衡算法来将请求分发到集群中的实例进行处理,常用的负载均衡算法有轮询算法和权重算法:轮询算法是指负载均衡器将来自用户的请求轮流分配到集群中的实例进行处理;权重算法是指负载均衡器根据集群实例的权重将来自用户的请求分配到对应集群的实例进行处理。负载均衡器需要定期检查服务端集群实例的运行状态即使“健康检查”,用于防止将请求分发到已失效的服务器上;负载均衡器在分发请求过程中,发现被分发请求的集群实例已经出现故障,需要将该请求转发到正常的集群实例上进行处理,即“失效转移”;
失效转移(Failover):高可用性意味着服务不会因为集群中的一个服务器实例出现故障失效后而导致服务中断,新的请求将由集群中的其他服务器实例进行处理;高可用性需要提供容错处理,当一个请求分发到一个正在失效的服务器实例中进行处理时,可能请求还未处理完该实例就出现了故障导致请求处理中断,高可用性需要提供容错能力让请求转移到其他实例继续进行处理,同时请求在故障实例上请求处理产生的数据也需要同步到其他实例。同步请求处理产生的中间数据可以通过会话(Session)复制等手段进行。
中间件是企业应用必不可少的基础软件,广泛用于构建企业应用管理系统和信息管理系统,Java应用服务器是中间件里面应用最为广泛的基础软件之一。Java应用服务器提供业务支撑系统中需要的WEB容器服务,EJB(Enterprise Java Bean)容器服务,JMS(Java Message Service)容器服务。各个中间件厂商提供的Java应用服务器均能使用多个应用服务器实例和负载均衡器结合来组建集群。
在业务支撑系统的具体实现中,众多的业务服务实现采用了EJB方式来实现,研究中间件EJB容器的性能、效率和可用性算法无疑对业务运行平台的高性能、可靠运行存在现实意义。J2EE规范将EJB作为业务逻辑层的核心进行了详细的规范说明,EJB可以方便地使用平台提供的交易管理、持久化管理、安全管理等特性服务,并可以方便地将EJB以WebService方式导出接口使用。采用EJB可以规范化业务的开发和测试,大大提升代码的复用性和方便代码的自动化生成管理,使得业务开发人员可以专注于业务的逻辑开发。
EJB规范规定了EJB的编程接口、使用方式,为了和企业环境大量的异构系统互联互通,也规定了EJB可以通过标准的RMI-IIOP协议与典型的CORBA语言无关的特性进行通信。因此,默认情况下EJB的序列化采用的是RMI-IIOP协议,负载均衡方法也普遍基于该协议实现。
现有的负载均衡方法主要基于轮询算法和权重算法,这两种算法有可能在短时间内将所有请求分配到一个异常状态的服务器的应用服务器集群实例上,导致整个客户端瘫痪。同时,现有的序列化算法添加空白字符来对齐数据,比如添加空白字符将Integer数据对齐到下标为4的字节上,long数据对齐到下标为8的字节上,浪费了空间,降低了数据传输的效率。
发明内容
本发明实施例提供一种Java应用服务器的EJB容器系统的数据传输方法及装置,用于解决现有的Java应用服务器的EJB容器系统的负载均衡方法导致客户端瘫痪的问题。
本发明实施例提供了一种Java应用服务器的EJB容器系统的数据传输方法,包括:
接收用户触发的多个并发的数据传输请求;
根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。
可选地,所述方法还包括:
若检测到接收到数据传输请求的应用服务器集群实例发生故障,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
可选地,所述方法还包括:
定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
可选地,所述方法还包括:
将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
可选地,将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上,包括:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
本发明实施例提供了一种Java应用服务器的EJB容器系统的数据传输装置,包括:
请求接收单元,用于接收用户触发的多个并发的数据传输请求;
请求分配单元,用于根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。
可选地,还包括:
请求转移单元,用于当检测到接收到数据传输请求的应用服务器集群实例发生故障时,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
可选地,还包括:
存活集群实例列表请求单元,用于定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
保存单元,用于将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
可选地,还包括:
数据传输单元,用于将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
可选地,所述数据传输单元进一步用于:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
本发明实施例提供的Java应用服务器的EJB容器系统的数据传输方法及装置,接收用户触发的多个并发的数据传输请求;根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。本发明实施例对各个应用服务器集群实例设置最大的并发的数据传输请求的数目,在分发并发的数据传输请求时,当分发到某个应用服务器集群实例上的并发的数据传输请求的数目达到最大的并发的数据传输请求的数目时,就不会再将其他的数据传输请求分配给该应用服务器集群实例,避免客户端瘫痪。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的Java应用服务器的EJB容器系统的数据传输方法的流程示意图;
图2是本发明一个实施例的Java应用服务器的EJB容器系统的数据传输装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一个实施例的Java应用服务器的EJB容器系统的数据传输方法的流程示意图。如图1所示,该实施例的方法包括:
S11:接收用户触发的多个并发的数据传输请求;
需要说明的是,本发明实施例的Java应用服务器的EJB容器系统包括客户端和服务器集群,服务器集群中包括多台服务器,每台服务器运行有应用服务器集群实例。客户端接收用户触发的多个并发的数据传输请求,数据传输请求可以包括数据插入请求、数据删除请求、数据更新请求和数据查询请求。
S12:根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值;
需要说明的是,本发明实施例的客户端的负载均衡列表中保存了存活集群实例,表示能够正常处理数据传输业务。
可理解的是,负载均衡算法会对并发的数据传输请求进行分发控制,避免在同一时刻将所有请求分配到一个出现异常状态并且处理速度很慢的实例上导致整个客户端瘫痪。由于已经建立的Socket连接无法在短时间内检测出网线断掉或者网卡松掉,出现该种情况时,会导致客户端请求卡住较长时间。传统的负载均衡算法最后会将所有客户端请求都分配到网线已经断掉的机器上导致整个客户端瘫痪。本发明实施例通过负载分发控制可以有效避免异常挂起的服务端导致客户端全部业务等待的情况。
具体来说,当负载均衡算法为轮询算法时,假如服务器集群有N台服务器,客户端有M个并发的数据传输请求,则应控制服务器集群中每个应用服务器集群实例的分发到的请求数目R不超过RLimit,即R<=RLimit:
当M%N=0时,RLimit=M/N;
当M%N!=0时,RLimit=M/N+1。
当负载均衡算法为权重算法时,假如服务器集群有N台服务器,总权重为WR,客户端有M个并发的数据传输请求,对于权重为W的应用服务器集群实例,则应控制分发到该应用服务器集群实例上的请求数目R不超过RLimit,即R<=RLimit;
当(M*W)%WR=0时,RLimit=(M*W)/WR;
当(M*W)%WR!=0时,RLimit=(M*W)/WR+1。
本发明实施例提供的Java应用服务器的EJB容器系统的数据传输方法,对各个应用服务器集群实例设置最大的并发的数据传输请求的数目,在分发并发的数据传输请求时,当分发到某个应用服务器集群实例上的并发的数据传输请求的数目达到最大的并发的数据传输请求的数目时,就不会再将其他的数据传输请求分配给该应用服务器集群实例,避免客户端瘫痪。
在本发明实施例的一种可选的实施方式中,与图1中的方法类似,所述方法还包括:
若检测到接收到数据传输请求的应用服务器集群实例发生故障,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
客户端在发现应用服务器集群实例已经出现故障或者发送数据传输请求的过程中出现通讯错误,会将数据传输请求重新分发到一个正常的应用服务器集群实例上进行处理。对于无状态会话Bean,应用服务器集群实例之间不需要同步状态。对于有状态会话Bean,应用服务器集群实例之间会通过Session复制来同步有状态会话Bean保存的状态,保证服务器集群中有数据库实例出现故障后能将数据传输请求切换到其他应用服务器集群实例继续进行服务。
本发明实施例的支持负载均衡和失效转移技术,负载均衡技术便于业务进行水平扩展,提高业务支撑能力。同时提供失效智能判断和自动转移技术可以保证业务的高可用性,在集群中有实例出现故障时,能够平滑迁移到其他实例进行服务,整个过程对于用户是透明的。
进一步地,所述方法还包括:
定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
需要说明的是,本发明实施例支持动态集群支持机制,当有新的应用服务器集群实例加入到服务器集群中时,新的应用服务器集群实例会通过组播通知集群中的其他应用服务器集群实例增加该实例到存活集群实例列表,当有应用服务器集群实例离开集群时,离开的应用服务器集群实例会在关闭前通知其他集群实例从存活集群实例列表中删除该实例。同时服务器集群的应用服务器集群实例之间会相互发送心跳侦测包,当服务器集群中有应用服务器集群实例异常退出时,服务器集群中的其他应用服务器集群实例会将收不到心跳侦测包的应用服务器集群实例标记为可疑实例,并在预设个数(比如2个)的检测周期后从存活集群实例列表中移除。
在实际应用中,本发明实施例的客户端运行有健康检查线程,定期向服务器集群请求存活集群实例列表,并和客户端缓存的存活集群实例列表进行对比更新。除了向服务端取回存活集群实例列表,客户端的健康检查线程还会定期对已经离开服务器集群的实例定期做PING操作,用于在快速将出现过故障后恢复到正常服务的应用服务器集群实例加入到客户端的负载均衡列表中。另外,客户端在进行EJB调用时,若发现连接已经坏掉,会向健康检测线程报告连接坏掉,然后从连接管理器中重新获取一个连接进行请求调用。
进一步地,所述方法还包括:
将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
具体地,将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上,包括:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
需要说明的是,本发明实施例在对Java对象进行序列化时,会将对象的表示形式全部拆分为数字类型的数据和字符串数据。因此对数字类型和字符串类型的数据的表示形式进行压缩处理,能大幅度降低序列化数据占用的空间,提升在网络中传输序列化数据的效率。以下具体说明本发明实施例对各种数据类型的压缩序列化表示形式:
(一)32位整形数据Integer
对于Integer类型的数据,IIOP序列化需要使用4个字节(Byte)来表示,假设b3、b2、b1、b0分别为表示Integer类型数据的从高位到地位排列的4个字节,即:
b3 | b2 | b1 | b0 |
则该Integer数据的取值为Value=b3<<24+b2<<16+b0<<8+b1。
而对于压缩序列化,会根据Integer类型数据的取值,将Integer数据类型分别使用1字节、2字节、3字节和5字节来表示,下面是对Integer类型的数据的压缩序列化处理:
1、对于取值在-0x10—0x3F之间的Integer数据,仅需要使用1个字节即可表示:
b0 |
其中b0的取值范围为:0x80<b0<0xBF,在压缩序列化中这个字节表示的值为:Value=b0–0x90。
2、对于取值在-0x800—0x7FF之间的Integer数据,仅需要使用2个字节即可表示:
b1 | b0 |
其中b1的取值范围为:0xC0<b1<0xCF,在压缩序列化中这两个字节表示的值为:Value=(b1–0xC8)<<8+b0。
3、对于取值在-0x4000—0x3FFFF之间的Integer数据,仅需要使用3个字节即可表示:
b2 | b1 | b0 |
其中b2的取值范围为0xD0<b2<0xD7,在压缩序列化中这三个字节表示的值为:Value=(b2–0xD4)<<16+b1<<8+b0。
4、对于所有的Integer数据,在压缩序列化中都可以使用5个字节来表示:
‘I’ | b3 | b2 | b1 | b0 |
在压缩序列化中这五个字节表示的取值为:Value=b3<<24+b2<<16+b1<<8+b0。
(二)64长整形数据Long
对于Long形数据,IIOP序列化需要使用8个字节(Byte)来表示,假设b7,b6,b5,b4,b3,b2,b1,b0分别表示Long型数据从高位到地位的8个字节:
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
该Long型数据的取值为:Value=b7<<56+b6<<48+b5<<40+b4<<32+b3<<24<<b2<<16+b1<<8+b0
对于压缩序列化,会根据Long类型数据的取值,将Long数据类型分别使用1字节、2字节、3字节、5字节和9字节来表示,下面是对Long类型的数据的压缩序列化处理:
1、对于取值范围在-0x08—0x0F之间的Long数据,仅需要一个字节即可表示:
b0 |
其中b0的取值范围为0xD8<b0<0xEF,在压缩序列化中这个字节表示的值为:Value=b0–0xE0。
2、对于取值范围在-0x800—0x7FF之间的Long数据,仅需要两个字节即可表示:
b1 | b0 |
其中b1的取值范围为0xF0<b1<0xFF,在压缩序列化中这两个字节表示的值为:Value=(b1–0xF8)<<8+b0。
3、对于取值范围在-0x40000—0x3FFFF之间的Long数据,仅需要三个字节即可表示:
b2 | b1 | b0 |
其中b2的取值范围为0x38<b2<0x3F,在压缩序列化中这三个字节表示的值为:Value=(b2–0x3C)<<16+b1<<8+b0。
4、对于取值范围在-32768—32767之间的Long数据,仅需要5个字节即可表示:
0x59 | b3 | b2 | b1 | b0 |
在压缩序列化中这5个字节表示的值为:Value=b3<<24+b2<<16+b1<<8+b0。
5、对于所有的Long数据,在压缩序列化中都可以使用9个字节来表示:
‘L’ | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
在压缩序列化中这9个字节表示的值为:Value=b7<<56+b6<<48+b5<<40+b4<<32+b3<<24+b2<<16+b1<<8+b0。
(三)64位双精度浮点数Double
对于Double数据,IIOP序列化需要使用8个字节(Byte)来表示,假设b7,b6,b5,b4,b3,b2,b1,b0分别表示Double型数据从高位到地位的8个字节:
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
该Double型数据需要使用IEEE 754格式进行存储,其取值需要根据IEEE 754格式进行计算。
对于压缩序列化,会根据Double类型数据的取值,将Double数据类型分别使用1字节、2字节、3字节、5字节和9字节来表示,下面是对Double类型的数据的压缩序列化处理:
1、双精度浮点数0.0,在压缩序列化中使用一个字节0x5B表示。
2、双精度浮点数1.0,在压缩序列化中使用一个字节0x5C表示。
3、对于-128—127之间的整形数据转换为Double,在压缩序列化中使用两个字节表示:
0x5D | b0 |
在压缩序列化中这两个字节的值为Value=(Double)b1。
4、对于-32768—32767之间的整形数据转换为Double,在压缩序列化中使用三个字节表示:
0x5E | b1 | b0 |
在压缩序列化中这三个字节的值Value=(Double)(b1<<8+b0)。
5、对于-2147483648—2147483647的整形数据,将其除以1000后所表示的取值转换为Double数据,在压缩序列化使用5个字节表示:
0x5F | b3 | b2 | b1 | b0 |
在压缩序列化中这五个字节的值Value=(Double)((b3<<24+b2<<16+b1<<8+b0))*0.001
6、对于所有的Double数据,在压缩序列化中都可以使用9个字节来表示:
‘D’ | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
该Double数据需要使用IEEE 754格式存储,其取值需要根据IEEE754格式进行计算。
(四)字符串数据
对于字符串数据,压缩序列化采用UTF-8形式的字符串对字符串进行序列化
1、对于0—31位长度的字符串,会使用1个字节表示字符串的长度:
其中b0的取值范围为:0x00<b0<0x1F,字符串的长度为Length=b0。
2、对于0—1023位长度的字符串,会使用2个字节表示字符串的长度:
其中b1的取值范围为0x30<b1<0x34,字符串的长度为Length=(b1–0x30)<<8+b0。
3、对于0—65536长度的字符串,会使用三个字节来标识字符串的长度:
字符串的长度为Length=b1<<8+b0。
4、对于超过65536长度的字符串,需要将字符串拆分为不超过65536大小的字符串片段,字符串片段的表示形式如下:
字符串片段的长度为:Length=b1<<8+b0。
可见,本发明实施例对于Integer、Long、Double类型的数据,均支持对部分数据使用较少字节的方式来表示,对范围较大的数据和不能使用压缩算法进行表示的数据,才使用较长格式的表示方式,有效节约了序列化数据中的数值类型的数据占用的空间;对于String数据,长度表示只使用了1到3个byte来表示,对于长度较小的字符串,能有效节约部分空间。而对于Java对象的序列化数据,所有对象的序列化数据最后都会拆分成基本数据类型和字符串的序列化数据,压缩序列化不会像RMI-IIOP序列化那样会添加空白字符来对齐数据。压缩序列化相对于RMI-IIOP序列化节省了较多的空间,提升了数据传输的效率。
图2是本发明一个实施例的Java应用服务器的EJB容器系统的数据传输装置的结构示意图。如图2所示,本发明实施例的装置包括请求接收单元21和请求分配单元22,具体地:
请求接收单元21,用于接收用户触发的多个并发的数据传输请求;
请求分配单元22,用于根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。
本发明实施例提供的Java应用服务器的EJB容器系统的数据传输装置,对各个应用服务器集群实例设置最大的并发的数据传输请求的数目,在分发并发的数据传输请求时,当分发到某个应用服务器集群实例上的并发的数据传输请求的数目达到最大的并发的数据传输请求的数目时,就不会再将其他的数据传输请求分配给该应用服务器集群实例,避免客户端瘫痪。
在本发明实施例的一种可选的实施方式中,该装置还包括:
请求转移单元,用于当检测到接收到数据传输请求的应用服务器集群实例发生故障时,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
进一步地,还包括:
存活集群实例列表请求单元,用于定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
保存单元,用于将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
进一步地,还包括:
数据传输单元,用于将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
所述数据传输单元具体用于:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
本发明实施例的Java应用服务器的EJB容器系统的数据传输装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
本发明实施例提供的Java应用服务器的EJB容器系统的数据传输方法及装置,接收用户触发的多个并发的数据传输请求;根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。本发明实施例对各个应用服务器集群实例设置最大的并发的数据传输请求的数目,在分发并发的数据传输请求时,当分发到某个应用服务器集群实例上的并发的数据传输请求的数目达到最大的并发的数据传输请求的数目时,就不会再将其他的数据传输请求分配给该应用服务器集群实例,避免客户端瘫痪。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
需要说明的是术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Java应用服务器的EJB容器系统的数据传输方法,其特征在于,包括:
接收用户触发的多个并发的数据传输请求;
根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到接收到数据传输请求的应用服务器集群实例发生故障,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
5.根据权利要求4所述的方法,其特征在于,将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上,包括:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
6.一种Java应用服务器的EJB容器系统的数据传输装置,其特征在于,包括:
请求接收单元,用于接收用户触发的多个并发的数据传输请求;
请求分配单元,用于根据负载均衡列表将各个数据传输请求发送至由负载均衡算法确定的应用服务器集群实例上,分配到每个应用服务器集群实例上的并发的数据传输请求的数目小于预设阈值。
7.根据权利要求6所述的装置,其特征在于,还包括:
请求转移单元,用于当检测到接收到数据传输请求的应用服务器集群实例发生故障时,则将对应的数据传输请求发送至其他正常的应用服务器集群实例。
8.根据权利要求6所述的装置,其特征在于,还包括:
存活集群实例列表请求单元,用于定期向服务器集群请求存活集群实例列表,所述存活集群实例列表中保存了所述服务器集群中正常的应用服务器集群实例;
保存单元,用于将所述存活集群实例列表中的信息保存在所述负载均衡列表中。
9.根据权利要求6所述的装置,其特征在于,还包括:
数据传输单元,用于将所述各个数据传输请求对应的待传输的数据发送至所述应用服务器集群实例上。
10.根据权利要求9所述的装置,其特征在于,所述数据传输单元进一步用于:
将所述各个数据传输请求对应的待传输的数据进行压缩序列化处理;
将压缩序列化处理后的数据发送至所述应用服务器集群实例上,所述压缩序列化处理过程中不添加空白字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710100580.5A CN108512865B (zh) | 2017-02-23 | 2017-02-23 | 一种Java应用服务器的EJB容器系统的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710100580.5A CN108512865B (zh) | 2017-02-23 | 2017-02-23 | 一种Java应用服务器的EJB容器系统的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108512865A true CN108512865A (zh) | 2018-09-07 |
CN108512865B CN108512865B (zh) | 2021-04-16 |
Family
ID=63372898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710100580.5A Active CN108512865B (zh) | 2017-02-23 | 2017-02-23 | 一种Java应用服务器的EJB容器系统的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108512865B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110944051A (zh) * | 2019-11-29 | 2020-03-31 | 北京达佳互联信息技术有限公司 | 负载均衡的实现方法、装置、计算机设备和存储介质 |
CN111385323A (zh) * | 2018-12-28 | 2020-07-07 | 中国移动通信集团江西有限公司 | Ejb业务处理方法、装置、设备及介质 |
CN111464602A (zh) * | 2020-03-24 | 2020-07-28 | 平安银行股份有限公司 | 流量处理方法、装置、计算机设备和存储介质 |
CN114095884A (zh) * | 2021-11-10 | 2022-02-25 | 中国建设银行股份有限公司 | 一种短信处理方法、装置、电子设备及计算机可读介质 |
CN109218376B (zh) * | 2017-07-07 | 2022-03-08 | 中国移动通信集团江西有限公司 | 数据处理的方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
WO2010099030A1 (en) * | 2009-02-24 | 2010-09-02 | Telcordia Technologies, Inc. | Systems and methods for single session management in load balanced application server clusters |
CN102710768A (zh) * | 2012-05-31 | 2012-10-03 | 深圳市远行科技有限公司 | 一种基于面向服务架构的大批量数据传输系统及方法 |
CN103346910A (zh) * | 2013-06-25 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 服务器可用状态的管理方法和装置 |
CN104363472A (zh) * | 2014-10-20 | 2015-02-18 | 中兴通讯股份有限公司 | 基于hls的能力控制方法及服务系统和slb服务器 |
-
2017
- 2017-02-23 CN CN201710100580.5A patent/CN108512865B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010099030A1 (en) * | 2009-02-24 | 2010-09-02 | Telcordia Technologies, Inc. | Systems and methods for single session management in load balanced application server clusters |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN102710768A (zh) * | 2012-05-31 | 2012-10-03 | 深圳市远行科技有限公司 | 一种基于面向服务架构的大批量数据传输系统及方法 |
CN103346910A (zh) * | 2013-06-25 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 服务器可用状态的管理方法和装置 |
CN104363472A (zh) * | 2014-10-20 | 2015-02-18 | 中兴通讯股份有限公司 | 基于hls的能力控制方法及服务系统和slb服务器 |
Non-Patent Citations (2)
Title |
---|
CHEYO: ""Spark序列化与压缩"", 《HTTP://BLOG.CHEYO.NET/58.HTML》 * |
程艳芬: ""基于Java的字符串分解器的研究与实现"", 《交通与计算机》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109218376B (zh) * | 2017-07-07 | 2022-03-08 | 中国移动通信集团江西有限公司 | 数据处理的方法、装置及设备 |
CN111385323A (zh) * | 2018-12-28 | 2020-07-07 | 中国移动通信集团江西有限公司 | Ejb业务处理方法、装置、设备及介质 |
CN111385323B (zh) * | 2018-12-28 | 2023-04-18 | 中国移动通信集团江西有限公司 | Ejb业务处理方法、装置、设备及介质 |
CN110944051A (zh) * | 2019-11-29 | 2020-03-31 | 北京达佳互联信息技术有限公司 | 负载均衡的实现方法、装置、计算机设备和存储介质 |
CN111464602A (zh) * | 2020-03-24 | 2020-07-28 | 平安银行股份有限公司 | 流量处理方法、装置、计算机设备和存储介质 |
CN111464602B (zh) * | 2020-03-24 | 2023-04-18 | 平安银行股份有限公司 | 流量处理方法、装置、计算机设备和存储介质 |
CN114095884A (zh) * | 2021-11-10 | 2022-02-25 | 中国建设银行股份有限公司 | 一种短信处理方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108512865B (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108512865A (zh) | 一种Java应用服务器的EJB容器系统的数据传输方法及装置 | |
JP6329899B2 (ja) | クラウドコンピューティングのためのシステム及び方法 | |
CN103827828B (zh) | 用于在流量指挥站环境中提供负载平衡与数据压缩的灵活性的系统及方法 | |
US10394611B2 (en) | Scaling computing clusters in a distributed computing system | |
WO2020062211A1 (zh) | 一种融合区块链技术拟态存储防篡改日志的方法及系统 | |
US9483482B2 (en) | Partitioning file system namespace | |
US8544094B2 (en) | Suspicious node detection and recovery in MapReduce computing | |
CN103581276B (zh) | 集群管理装置、系统、业务客户端及相应方法 | |
US9723110B2 (en) | System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment | |
US8634330B2 (en) | Inter-cluster communications technique for event and health status communications | |
US20150215394A1 (en) | Load distribution method taking into account each node in multi-level hierarchy | |
JP2005539298A (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
US10819641B2 (en) | Highly available servers | |
CN102968310A (zh) | 一种一体化高性能应用软件架构及构建方法 | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与系统 | |
US9912742B2 (en) | Combining application and data tiers on different platforms to create workload distribution recommendations | |
CN109218100A (zh) | 分布式对象存储集群及其请求响应方法、系统和存储介质 | |
CN101296176B (zh) | 一种基于群集的数据处理方法和装置 | |
WO2014122555A1 (en) | Workload balancing in distributed database | |
US20110099273A1 (en) | Monitoring apparatus, monitoring method, and a computer-readable recording medium storing a monitoring program | |
CN102387218A (zh) | 一种计算机多机热备负载均衡系统 | |
US20160094636A1 (en) | System and method for supporting asynchronous request/response in a network environment | |
CN112217847A (zh) | 微服务平台及其实现方法、电子设备及存储介质 | |
CN102025783A (zh) | 集群系统及其消息处理方法和协议转发网关 | |
CN107203639A (zh) | 基于高性能计算技术的并行文件系统 |
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 |