[go: up one dir, main page]

CN102724104A - 自动配置Java EE应用集群的装置和方法 - Google Patents

自动配置Java EE应用集群的装置和方法 Download PDF

Info

Publication number
CN102724104A
CN102724104A CN2011100782005A CN201110078200A CN102724104A CN 102724104 A CN102724104 A CN 102724104A CN 2011100782005 A CN2011100782005 A CN 2011100782005A CN 201110078200 A CN201110078200 A CN 201110078200A CN 102724104 A CN102724104 A CN 102724104A
Authority
CN
China
Prior art keywords
node
application
cluster
java
unit
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
Application number
CN2011100782005A
Other languages
English (en)
Other versions
CN102724104B (zh
Inventor
程银波
李明
李春青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI DONGFANGTONG SOFTWARE TECHNOLOGY CO., LTD.
Beijing Tongtech Co Ltd
Original Assignee
Beijing Tongtech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tongtech Co Ltd filed Critical Beijing Tongtech Co Ltd
Priority to CN201110078200.5A priority Critical patent/CN102724104B/zh
Publication of CN102724104A publication Critical patent/CN102724104A/zh
Application granted granted Critical
Publication of CN102724104B publication Critical patent/CN102724104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种自动配置Java EE应用集群的装置和方法,属于Java EE应用技术领域。主要解决Java EE应用集群不能随着应用部署的变化而自动配置的问题。技术方案的要点为通过节点自动发现和节点状态的实时监控获取节点和应用状态的变化信息,然后根据变化信息相应地修改应用集群的配置;根据Java EE应用服务器端基于负载和资源的情况计算获得的动态负载因子分发应用请求。本发明提供的装置和方法可以实现Java EE应用动态集群和自适应的动态负载均衡,从而提高Java EE应用的可用性和可伸缩性。

Description

自动配置Java EE应用集群的装置和方法
技术领域
本发明涉及Java EE应用技术领域,尤其是涉及一种自动配置Java EE应用集群的装置和方法。
背景技术
越来越多的关键任务和大型应用运行在Java EE(Java Platform,Enterprise Edition)平台上,这些关键应用往往要求很高的可用性和可伸缩性。Java EE集群技术是Java EE产品提供商用于提高Java EE产品可用性和可伸缩性,以及实现负载均衡最常用的方式。
图1描述了现有Java EE集群系统100。客户端101发出应用请求102,路由器和负载均衡器103基于集群列表104将应用请求102发送给运行在节点群107上的应用集群109。节点群107包括数个节点108,节点108可以是物理主机,也可以是虚拟主机。每个节点108通常运行一个Java EE应用服务器,每个应用服务器部署多个Java EE应用110,多个节点中的同一应用构成一个应用集群109。在图1中,存在两个应用集群,其中一个应用集群109中的应用为“b”,另一个应用集群中的应用为“a”。
在配置上述应用集群109时,首先通过应用部署单元106选择目标节点108,并在目标节点108上部署应用110,然后通过集群配置模块105配置集群列表104,集群列表104中的信息包括应用集群109的节点列表和节点负载因子。如果在应用集群109中增加或者减少一个节点108,则需要通过集群配置模块105手动修改应用集群109的节点列表。
由于配置繁琐,系统100不适用应用集群109规模较大时的环境,而且不支持应用集群的动态伸缩。然而,应用的负载通常是动态变化的,具有一定的突发性。系统100若按照负载峰值配置应用集群,会造成大量资源的浪费;若按照负载均值配置应用集群,则在负载高峰期会造成服务质量的下降和用户的流失。此外,在系统100中,应用请求根据预设的静态负载因子选择目标节点,不能根据节点的实际负载情况来分发应用请求。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种自动配置Java EE应用集群的装置和方法,使得在部署新节点、节点失效或者在节点上部署应用之后,系统可以自动地完成应用集群的重新配置,并实现自适应的动态负载均衡。
(二)技术方案
为了解决上述技术问题,本发明提供了一种自动配置Java EE应用集群的装置,包括多个节点的节点群、运行在节点群上的应用集群,每个节点上运行一个Java EE应用服务器,每个应用服务器上部署多个Java EE应用,所述装置还包括:存储单元、代理单元、集群自动管理单元、负载均衡单元、应用部署单元;
存储单元用于存储节点列表、节点的负载因子、应用集群及其位置的列表;
代理单元用于监控Java EE应用服务器及其内部容器的状态,一旦发现状态发生改变则发送信息修改消息给集群自动管理单元,并周期性地计算节点的负载因子,并发送信息修改消息给集群自动管理单元;
集群自动管理单元用于维护存储单元中所存储的信息,当接收到代理单元的消息,根据所述信息修改消息对存储单元中变化的信息做相应的修改;
负载均衡单元用于接收客户端发送的应用请求,并根据从存储单元获得的应用集群的位置列表及该应用集群所在节点的负载因子选择目标节点,并将应用请求转发给目标节点;
应用部署单元提供应用部署功能,用于对应用进行部署,在部署应用时从存储单元获取可选择的节点列表。
优选地,所述节点是物理主机或虚拟主机。
本发明还提供了一种利用所述的装置自动配置Java EE应用集群的方法,包含以下步骤:
S1、代理单元实时监控Java EE应用服务器及其内部容器的状态,一旦发现状态发生改变则发送信息修改消息给集群自动管理单元;
S2、集群自动管理单元收到所述信息修改消息后自动更新存储单元中存储的信息;
S3、负载均衡单元接收到客户端发送的应用请求后,根据从存储单元获得的应用集群列表及其节点的负载因子选择目标节点,并将应用请求转发给目标节点。
优选地,在步骤S1之前还包括步骤S0、在节点刚启动时,节点的代理单元将用于获取节点所在主机地址和端口的消息以组播的方式发送给集群自动管理单元,集群自动管理单元收到组播消息后将该节点的主机地址和端口发送给节点的代理单元,从而实现节点的自动发现。
优选地,所述监控Java EE应用服务器及其内部容器的状态发生变化包括:节点地址发生变化、Java EE应用服务器启动或暂停、应用的部署和解部署。
优选地,步骤S1与S2之间还包括步骤S1’:代理单元在Java EE应用服务器端周期性地根据默认或者自定义的负载度量标准计算节点的负载因子的步骤。
优选地,在步骤S1’与S2之间还包括步骤S1”:代理单元向集群自动管理单元发送表明节点处于活动状态的心跳消息。
优选地,在步骤S2与S3之间还包括步骤S2’:集群自动管理单元根据预设的超时时间和各节点最近一次收到的心跳消息判定节点是否失效。
在判定节点是否失效之后,集群自动管理单元主动发送应用请求给代理单元,以确认节点是否失效。
(三)有益效果
本发明的技术效果主要为:(1)通过实现自动发现Java EE应用服务器节点和对节点状态的实时监控来获取节点和应用状态的变化信息,然后根据变化信息相应地修改应用集群的配置,从而能够随着应用部署的变化而自动配置Java EE应用集群。(2)提供了一个在JavaEE应用服务器端根据负载和资源的情况计算负载因子从而分发应用请求的动态负载均衡方法,与现有技术中采用静态的负载因子的方法相比,所能达到的负载均衡效果更优。
附图说明
图1为根据现有技术实现的集群系统示意图;
图2根据本发明的实施例实现的能够实现动态配置的集群系统示意图;
图3是本发明的方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图2描述了根据本发明实施例的系统200,其中根据应用集群209在主机群206中的位置及其节点208的负载因子,使用负载均衡单元203从多个客户端201向应用集群209传送应用请求202。特别地,代理单元211(图2中简写为“代理”)实时监控节点208的状态和周期性计算负载因子,在发生变化时及时通知集群自动管理单元213,集群自动管理单元213自动更新存储单元205中的集群列表、节点位置及负载因子204和节点列表212。
在图2中,节点4是刚启动的节点,其应用服务器上已部署应用“b”之后,用户通过应用部署单元207在节点3和节点4上部署了应用“c”,对节点3上的应用“a”进行解部署。
当节点4启动成功时,代理单元211发送包含用于获取主机地址和端口的组播消息,集群自动管理单元213收到组播消息后将自己的地址和端口告诉节点4。在获得集群自动管理单元213的主机地址和端口后,代理单元211将节点4上已部署的应用“b”发送给集群自动管理单元213。集群自动管理单元213收到更新消息后更新存储单元205中的集群列表、节点位置及负载因子204和节点列表212:在节点列表中增加节点4,在应用集群209的列表中增加节点4、节点4的地址和负载因子。
用户通过应用部署单元207选择在节点3和节点4上部署应用“c”。当节点3和节点4的代理单元211发现节点上部署了应用“c”,分别将操作类型“部署应用”和部署的应用“c”通知集群自动管理单元213。集群自动管理单元213收到更新消息后,确定节点3和4已经在节点列表212中,仅需更新存储单元205中的集群列表、节点位置及负载因子204:增加应用c(210)组成的应用集群,在应用集群的列表中增加节点3和节点4。
此后,用户通过应用部署单元207在对节点3上的应用“a”进行解部署。当节点3的代理单元211发现节点上的应用“a”被解部署时,将操作类型“解部署应用”和被解部署的应用“a”发送给集群自动管理单元213。集群自动管理单元213收到更新消息后,更新存储单元205中的集群列表、节点位置及负载因子204:在应用a组成的应用集群的列表中删除节点3。
本发明还提供了一种利用所述的装置自动配置Java EE应用集群的方法,包含以下步骤:
S1、代理单元实时监控Java EE应用服务器及其内部容器的状态,一旦发现状态发生改变则发送信息修改消息给集群自动管理单元;
S2、集群自动管理单元收到所述信息修改消息后自动更新存储单元中存储的信息;
S3、负载均衡单元接收到客户端发送的应用请求后,根据从存储单元获得的应用集群列表及其节点的负载因子选择目标节点,并将应用请求转发给目标节点。
优选地,在步骤S1之前还包括步骤S0、在节点刚启动时,节点的代理单元将用于获取节点所在主机地址和端口的消息以组播的方式发送给集群自动管理单元,集群自动管理单元收到组播消息后将该节点的主机地址和端口发送给节点的代理单元,从而实现节点的自动发现。
优选地,所述监控Java EE应用服务器及其内部容器的状态发生变化包括:节点地址发生变化、Java EE应用服务器启动或暂停、应用的部署和解部署。
优选地,步骤S1与S2之间还包括步骤S1’:代理单元在Java EE应用服务器端周期性地根据默认或者自定义的负载度量标准计算节点的负载因子的步骤。
优选地,在步骤S1’与S2之间还包括步骤S1”:代理单元向集群自动管理单元发送表明节点处于活动状态的心跳消息。
优选地,在步骤S2与S3之间还包括步骤S2’:集群自动管理单元根据预设的超时时间和各节点最近一次收到的心跳消息判定节点是否失效。
在判定节点是否失效之后,集群自动管理单元主动发送应用请求给代理单元,以确认节点是否失效。
由以上实施例可以看出,本发明主要解决Java EE应用集群不能随着应用部署的变化而自动配置的问题。技术方案的要点为通过节点自动发现和对节点状态的实时监控来获取节点和应用状态的变化信息,然后根据变化信息相应地修改应用集群的配置;根据Java EE应用服务器端基于负载和资源的情况计算获得的动态负载因子分发应用请求。本发明提供的装置和方法可以实现Java EE应用动态集群和自适应的动态负载均衡,从而提高Java EE应用的可用性和可伸缩性。
本发明可用于一般的Java EE应用环境。特别地,在云计算环境中,结合云计算可伸缩的基础设施架构以及基于应用负载的资源调整策略,可以实现Java EE应用自动适应业务需求的变化。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (10)

1.一种自动配置Java EE应用集群的装置,包括多个节点的节点群、运行在节点群上的应用集群,每个节点上运行一个Java EE应用服务器,每个应用服务器上部署多个Java EE应用,其特征在于,所述装置还包括:存储单元、代理单元、集群自动管理单元、负载均衡单元、应用部署单元;
存储单元用于存储节点列表、节点的负载因子、应用集群及其位置的列表;
代理单元用于监控Java EE应用服务器及其内部容器的状态,一旦发现状态发生改变则发送信息修改消息给集群自动管理单元,并周期性地计算节点的负载因子,并发送信息修改消息给集群自动管理单元;
集群自动管理单元用于维护存储单元中所存储的信息,当接收到代理单元的消息,根据所述信息修改消息对存储单元中变化的信息做相应的修改;
负载均衡单元用于接收应用请求,并根据从存储单元获得的应用集群的位置列表及该应用集群所在节点的负载因子选择目标节点,并将应用请求转发给目标节点;
应用部署单元提供应用部署功能,用于对应用进行部署,在部署应用时从存储单元获取可选择的节点列表。
2.如权利要求1所述的装置,其特征在于,所述节点是物理主机或虚拟主机。
3.如权利要求1所述的装置,其特征在于,所述Java EE应用服务器及其内部容器的状态发生变化包括:节点地址发生变化、Java EE应用服务器启动或暂停、应用的部署和解部署。
4.一种利用权利要求1或2或3所述的装置自动配置Java EE应用集群的方法,其特征在于,包含以下步骤:
S1、代理单元实时监控Java EE应用服务器及其内部容器的状态,一旦发现状态发生改变则发送信息修改消息给集群自动管理单元;
S2、集群自动管理单元收到所述信息修改消息后自动更新存储单元中存储的信息;
S3、负载均衡单元接收到客户端发送的应用请求后,根据从存储单元获得的应用集群列表及其节点的负载因子选择目标节点,并将应用请求转发给目标节点。
5.如权利要求4所述的方法,其特征在于,在步骤S1之前还包括步骤S0、在节点刚启动时,节点的代理单元将用于获取节点所在主机地址和端口的消息以组播的方式发送给集群自动管理单元,集群自动管理单元收到组播消息后将该节点的主机地址和端口发送给节点的代理单元,从而实现节点的自动发现。
6.如权利要求4所述的方法,其特征在于,所述监控Java EE应用服务器及其内部容器的状态发生变化包括:节点地址发生变化、Java EE应用服务器启动或暂停、应用的部署和解部署。
7.如权利要求4所述的方法,其特征在于,步骤S1与S2之间还包括步骤S1’:代理单元在Java EE应用服务器端周期性地根据默认或者自定义的负载度量标准计算节点的负载因子的步骤。
8.如权利要求7所述的方法,其特征在于,在步骤S1’与S2之间还包括步骤S1”:代理单元向集群自动管理单元发送表明节点处于活动状态的心跳消息。
9.如权利要求8所述的方法,其特征在于,在步骤S2与S3之间还包括步骤S2’:集群自动管理单元根据预设的超时时间和各节点最近一次收到的心跳消息判定节点是否失效。
10.如权利要求9所述的方法,其特征在于,在判定节点是否失效之后,集群自动管理单元主动发送应用请求给代理单元,以确认节点是否失效。
CN201110078200.5A 2011-03-30 2011-03-30 自动配置Java EE应用集群的装置和方法 Active CN102724104B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110078200.5A CN102724104B (zh) 2011-03-30 2011-03-30 自动配置Java EE应用集群的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110078200.5A CN102724104B (zh) 2011-03-30 2011-03-30 自动配置Java EE应用集群的装置和方法

Publications (2)

Publication Number Publication Date
CN102724104A true CN102724104A (zh) 2012-10-10
CN102724104B CN102724104B (zh) 2015-04-29

Family

ID=46949769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110078200.5A Active CN102724104B (zh) 2011-03-30 2011-03-30 自动配置Java EE应用集群的装置和方法

Country Status (1)

Country Link
CN (1) CN102724104B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036946A (zh) * 2012-11-21 2013-04-10 中国电信股份有限公司云计算分公司 一种用于云平台处理文件备份任务的方法和系统
CN105871580A (zh) * 2015-11-02 2016-08-17 乐视致新电子科技(天津)有限公司 跨集群自动化部署运维系统及方法
CN107079472A (zh) * 2014-09-12 2017-08-18 华为技术有限公司 用于确定接入节点集群的方法和装置
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置
CN111092915A (zh) * 2018-10-23 2020-05-01 亿度慧达教育科技(北京)有限公司 服务器系统
CN111614499A (zh) * 2020-05-25 2020-09-01 郁健兰 基于5g和区块链的信息处理方法及云计算服务器
CN112910796A (zh) * 2021-01-27 2021-06-04 北京百度网讯科技有限公司 流量管理方法、装置、设备、存储介质以及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207550A (zh) * 2007-03-16 2008-06-25 中国科学技术大学 负载均衡系统及多种业务实现负载均衡的方法
US20090138582A1 (en) * 2007-11-28 2009-05-28 Mladen Turk Multi-Level Load Balancer
CN101753461A (zh) * 2010-01-14 2010-06-23 中国建设银行股份有限公司 实现负载均衡的方法、负载均衡服务器以及集群系统
CN101873237A (zh) * 2010-06-13 2010-10-27 用友软件股份有限公司 动态维护集群中的成员服务器的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207550A (zh) * 2007-03-16 2008-06-25 中国科学技术大学 负载均衡系统及多种业务实现负载均衡的方法
US20090138582A1 (en) * 2007-11-28 2009-05-28 Mladen Turk Multi-Level Load Balancer
CN101753461A (zh) * 2010-01-14 2010-06-23 中国建设银行股份有限公司 实现负载均衡的方法、负载均衡服务器以及集群系统
CN101873237A (zh) * 2010-06-13 2010-10-27 用友软件股份有限公司 动态维护集群中的成员服务器的方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036946A (zh) * 2012-11-21 2013-04-10 中国电信股份有限公司云计算分公司 一种用于云平台处理文件备份任务的方法和系统
CN103036946B (zh) * 2012-11-21 2016-08-24 中国电信股份有限公司 一种用于云平台处理文件备份任务的方法和系统
CN107079472A (zh) * 2014-09-12 2017-08-18 华为技术有限公司 用于确定接入节点集群的方法和装置
CN107079472B (zh) * 2014-09-12 2020-04-21 华为技术有限公司 用于确定接入节点集群的方法和装置
CN105871580A (zh) * 2015-11-02 2016-08-17 乐视致新电子科技(天津)有限公司 跨集群自动化部署运维系统及方法
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置
CN108206779B (zh) * 2016-12-16 2020-08-14 北京金山云网络技术有限公司 一种集群访问系统、方法及装置
CN111092915A (zh) * 2018-10-23 2020-05-01 亿度慧达教育科技(北京)有限公司 服务器系统
CN111614499A (zh) * 2020-05-25 2020-09-01 郁健兰 基于5g和区块链的信息处理方法及云计算服务器
CN111614499B (zh) * 2020-05-25 2021-03-16 江苏永鼎通信有限公司 基于5g和区块链的信息处理方法及云计算服务器
CN112910796A (zh) * 2021-01-27 2021-06-04 北京百度网讯科技有限公司 流量管理方法、装置、设备、存储介质以及程序产品
CN112910796B (zh) * 2021-01-27 2022-12-16 北京百度网讯科技有限公司 流量管理方法、装置、设备、存储介质以及程序产品

Also Published As

Publication number Publication date
CN102724104B (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN108737270B (zh) 一种服务器集群的资源管理方法和装置
US11290524B2 (en) Scalable fault resilient communications within distributed clusters
US9999030B2 (en) Resource provisioning method
US9722867B2 (en) Resource management method, resource management system and resource manager
CN102546256B (zh) 用于对云计算服务进行监控的系统及方法
CN102724104B (zh) 自动配置Java EE应用集群的装置和方法
CN106817432B (zh) 云计算环境下虚拟资源弹性伸展的方法,系统和设备
US20160344582A1 (en) Call home cluster
CN103677752B (zh) 基于分布式数据的并发处理方法和系统
US10469593B2 (en) Method and system for sharded resource brokering
CN110061855B (zh) 一种业务处理方法、系统和装置
WO2021120633A1 (zh) 一种负载均衡方法及相关设备
WO2017161979A1 (zh) 一种基于云平台管理服务器的方法及装置
US20170163494A1 (en) Messaging queue spinning engine
US9760370B2 (en) Load balancing using predictable state partitioning
EP3132567B1 (en) Event processing in a network management system
US20110167039A1 (en) Distributed throttling for mailbox data replication
US10243799B2 (en) Method, apparatus and system for virtualizing a policy and charging rules function
JP2024514467A (ja) 地理的に分散されたハイブリッドクラウドクラスタ
US8458702B1 (en) Method for implementing user space up-calls on java virtual machine before/after garbage collection
CN107404442A (zh) 流量处理方法及系统
US8539276B2 (en) Recovering from lost resources in a distributed server environment
US10382349B2 (en) Server for distributed controller system
CN102904739A (zh) 一种实现事件转发的方法及通用信息模型cim服务器
CN102571880A (zh) 一种服务分发方法和系统以及一种服务分发节点

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHANGHAI DONGFANG TONGTAI SOFTWARE TECHNOLOGY CO.,

Effective date: 20131029

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20131029

Address after: Beijing City 100080 square Haidian District Road No. 10 Building 3 layer 1+1

Applicant after: Beijing Tongtech Co.,Ltd.

Applicant after: SHANGHAI DONGFANGTONG SOFTWARE TECHNOLOGY CO., LTD.

Address before: Beijing City 100080 square Haidian District Road No. 10 Building 3 layer 1+1

Applicant before: Beijing Tongtech Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant