`
魔力猫咪
  • 浏览: 107076 次
  • 来自: 北京
社区版块
存档分类
最新评论

配置Glassfish多机集群

阅读更多
  猫咪在论坛看到有人尝试配置Glassfish多机集群失败。猫咪也在网上搜索了一下,Glassfish有关配置集群的文章很少,仅有的几篇居然多是在一台机器上配置多个实例。昏死,那还叫什么集群!  
  猫咪又在网上和Sun的官方网站上反复搜索,终于发现一篇Glassfish配置多机集群的文章(http://blogs.sun.com/anilam/entry/glassfish_v2_admin_console_series)。猫咪根据这篇文章在自己的VMware上配置成功。现把自己的经验写下来,帮助有需要的朋友。
  猫咪自己是在VMware中建立两个虚拟计算机,使用的是Windows Server 2003。本来是想用Linux的,但是Ubuntu每次总要联机查补丁,慢得要死,所以只好装2003了。
  两台虚拟机器,IP地址一个是192.168.1.103,一个是192.168.1.104。其中192.168.1.104作为主控代理服务器和其中一个节点服务器。
  首先在每台计算机上下载安装JDK6(至少也得是JDK5),安装过程在此不再叙述。
  然后是安装Glassfish。猫咪用的是Glassfish v2ur1多语言版。从网上下载来后,执行
  java –Xmx256m –jar glassfish-installer-v2ur1-b09d-windows-ml.jar
  将安装文档解压缩。然后进入Glassfish下,执行
  lib\ant\bin\ant –f setup-cluster.xml
  两台都要这么做。
  其实理论上应该是一台代理服务器,多台节点服务器。不过猫咪怕自己机器吃不消,所以就只用了两台机器。不过其中一台机器既做代理又做节点,性能上有问题。自己试验可以,实际中这么配可不行。
如果“ant –f setup-cluster.xml”执行没有问题,那么在两台服务器上就都建立了一个支持集群的服务器实例。
  首先,在代理服务器上进入Glassfish的bin目录启动实例,
  asadmin strat-domain domain1
  “domain1”是系统自动建立的缺省实例,你也可以建立自己的实例。格式是“create-domain --profile cluster --adminport 4848 <实例名>”,“--profile cluster”表示实例是集群实例,“--adminport 4848”表示管理端口是4848。
  分别在两个节点服务器上建立节点代理(目前192.168.1.104还兼任代理服务器职责)。
  asadmin create-node-agent --host 192.168.1.104 --port 4848 agentOnFirst
  建立第一个代理节点。
  asadmin create-node-agent --host 192.168.1.104 --port 4848 agentOnSecond
  建立第二个代理节点。
  建立的时候,要求你输入代理服务器的用户名、密码和主密码。缺省是用户名“admin”,密码“adminadmin”,主密码我是自己建立的实例,也设定成了“adminadmin”。如果你用的是缺省实例,主密码应该是“changeit”。命令要分别在两个节点服务器上执行,不要在代理服务器上执行。然后分别启动这两个节点代理
  asadmin start-node-agent agentOnFirst
  asadmin start-node-agent agentOnSecond
  启动的时候同样要求你输入代理服务器用户名、密码和主密码。如果没有问题,系统会显示节点启动成功。
现在通过浏览器登录“http://192.168.1.104:4848”,进行集群的创建和配置。进入控制台后,选择“群集”,然后选择“新建”按钮。输入集群名称后按“确定”。猫咪把自己的集群叫“MiaoCluster”。然后点击这个集群实例,选择右边的“实例”选项卡,然后将刚才创建的两个节点代理分别添加进去就可以了。最后在“常规”选项卡中按“启动群集”按钮,如果之前一切正常,两个节点均正常连接的情况下,集群就会成功启动。现在就可以在“应用程序”选项卡中进行应用部署了。猫咪自己写了一个缺省的JavaEE应用,只有一个缺省的index.jsp文件,上面就一句话“<%=”Hello WOrld!”%>”。因为不涉及到任何其他东西,所以部署很成功。
  然后在浏览器上输入“http://192.168.1.104:38080/hello”。其中38080是集群的访问端口,猫咪的应用叫hello。浏览器成功显示出了“Hello World!”。然后再访问“http://192.168.1.103:38080/hello”,同样成功显示。去每个节点服务器的节点目录下,可以看到在“C:\glassfish\nodeagents\<节点名>\<实例名>\applications\j2ee-modules\”下有hello目录。如果你觉得这么访问不方便,一会儿103一会儿104的,你可以在代理服务器上配置HTTP负载均衡。
截图是浏览器分别访问两个节点成功的画面。

 

  • 大小: 78.4 KB
  • 大小: 78.6 KB
分享到:
评论
18 楼 RunAway 2009-02-25  
asadmin start-node-agent agentOnSecond

已经按你说的一步一步 做了 到启动第2个代理节点时

还是一直启动不起来

一的是 centos 5 启动起来了, 二的是 win2003 死活启动不起来
17 楼 RunAway 2009-02-25  
2009-2-25 11:58:20 com.sun.enterprise.admin.servermgmt.launch.ASLauncher buildCommand
信息:
D:\Java\jdk1.5.0_15\bin\javaw
-Dcom.sun.aas.instanceRoot=D:/Java/glassfish/nodeagents/agentOnSecond/agent
-Dcom.sun.aas.configRoot=D:/Java/glassfish/config
-Dcom.sun.aas.defaultLogFile=D:/Java/glassfish/nodeagents/agentOnSecond/agent/logs/server.log
-Dcom.sun.aas.instanceName=agentOnSecond
-Dcom.sun.aas.isNodeAgent=true
-Dcom.sun.aas.promptForIdentity=true
-Dcom.sun.appserv.admin.pluggable.features=com.sun.enterprise.ee.admin.pluggable.EEClientPluggableFeatureImpl
-Dcom.sun.appserv.nss.db=D:/Java/glassfish/nodeagents/agentOnSecond/agent/config
-Dcom.sun.appserv.pluggable.features=com.sun.enterprise.ee.server.pluggable.EEPluggableFeatureImpl
-Djava.endorsed.dirs=D:/Java/glassfish/lib/endorsed
-Djava.library.path=D:\Java\glassfish\lib;D:\Java\glassfish\lib;D:\Java\glassfish\bin;D:\Java\glassfish\lib;D:\Java\glassfish\lib
-Djava.security.auth.login.config=D:/Java/glassfish/nodeagents/agentOnSecond/agent/config/login.conf
-Djava.util.logging.manager=com.sun.enterprise.server.logging.ServerLogManager
-Djmx.invoke.getters=true
-XX:+UnlockDiagnosticVMOptions
-XX:LogFile=D:/Java/glassfish/nodeagents/agentOnSecond/agent/logs/jvm.log
-XX:+LogVMOutput
-cp
D:\Java\glassfish\lib\appserv-launch.jar;D:/Java/glassfish/lib\appserv-admin.jar;D:/Java/glassfish/lib\appserv-ee.jar;D:/Java/glassfish/lib\appserv-ext.jar;D:/Java/glassfish/lib\appserv-rt.jar;D:/Java/glassfish/lib\appserv-se.jar;D:/Java/glassfish/lib\javaee.jar
com.sun.enterprise.ee.nodeagent.NodeAgentMain
start
startInstancesOverride=NOTSET
syncInstances=false
[#|2009-02-25T11:58:21.578+0800|INFO|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|IdentityManager Data: User:admin|#]

[#|2009-02-25T11:58:21.984+0800|INFO|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|NAGT0004: 正在启动节点代理...|#]

[#|2009-02-25T11:58:22.046+0800|CONFIG|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|DAS url = service:jmx:rmi:///jndi/rmi://192.168.0.248:8686/management/rmi-jmx-connector|#]

[#|2009-02-25T11:58:22.406+0800|INFO|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|NAGT0025:节点代理无法配置日志记录级别。将使用默认日志记录级别。|#]

[#|2009-02-25T11:58:22.406+0800|INFO|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|NAGT0038:正在执行节点代理与 DAS 的同步|#]

[#|2009-02-25T11:58:31.765+0800|INFO|sun-appserver9.1|javax.ee.enterprise.system.tools.synchronization|_ThreadID=10;_ThreadName=main;|SYNC001:无法与域管理服务器进行通信。正在跳过同步。|#]

[#|2009-02-25T11:58:31.765+0800|SEVERE|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|NAGT0035:节点代理无法完成与 DAS 的初始同步。请确保 DAS 正在运行并且通过此节点代理的服务器可以访问该 DAS。|#]

[#|2009-02-25T11:58:33.765+0800|WARNING|sun-appserver9.1|javax.ee.enterprise.system.nodeagent|_ThreadID=10;_ThreadName=main;|NAGT0013:正在停止节点代理...|#]
16 楼 ftmouse 2008-06-16  
还没有用过这样的高级功能。
15 楼 davexin 2008-06-15  
做群集,无非就是java应用和数据库,本人商业环境只用过bea webloigc群集和orale群集,其他的只是测试过,如果用群集的web方面,感觉得不偿失,因为性能实在不敢恭维,最好是用 ejb的cluster,既简单,又方便,只需要把地址配成群集中多个机器的ip就可以了。web的群集本人的方案是采用resin的农场模式做。虽然不可以使用热session,但是个人感觉已经够了。
14 楼 ferreousbox 2008-05-27  
glassfish的集群效率如何呢?现在的应用服务器基本上都支持集群,如tomcat、resin等,但是真正复杂高访问量应用的时候有多少用到了呢?软件层面的集群解决方案似乎是个鸡肋,系统层面的LVS大家讨论的似乎不是很多,后者虽然麻烦点,但性能方面应该会好很多。
13 楼 LucasLee 2008-05-23  
Joo 写道
robbin 写道
dinghyana 写道
多机是集群,单机上的多个实例又叫啥?

前者叫做水平群集,后者叫做垂直群集。


是吗,貌似不是这么定义的吧

我觉得也不是,不过查了一下,还真是:http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?topic=/com.ibm.itcamrtt.doc_6.0/ITCAMfTT_InstallConfig10.htm
12 楼 魔力猫咪 2008-05-23  
就别夸我了。我发了这个后,有人问我如何配置负载均衡和前端的WebServer。还有如何进行服务器同步。还有人问我Glassfish的同步机制如何。结果我就答不上来了。
11 楼 judytang 2008-05-22  
“猫咪自己是在VMware中建立两个虚拟计算机,使用的是Windows Server 2003”,猫咪好厉害,掌声一下 !
10 楼 judytang 2008-05-22  
”Glassfish有关配置集群的文章很少”,猫咪好,想问问在中国用GLASSFISH的人很少是吗,大约是什么百分比呢,多数人是用什么APPLICATION SERVER 呢 ?
9 楼 judytang 2008-05-22  
来拜访魔力猫咪,这里的讨论很热闹,欢迎来加入GLASSFISH QUALITY COMMUNITY,借你的宝地啦,谢谢 !

http://glassfish.group.iteye.com/group/topic/5579
8 楼 Joo 2008-05-07  
robbin 写道
dinghyana 写道
多机是集群,单机上的多个实例又叫啥?

前者叫做水平群集,后者叫做垂直群集。


是吗,貌似不是这么定义的吧
7 楼 dinghyana 2008-05-07  
大哥,我还有疑问,
"如果你觉得这么访问不方便,一会儿103一会儿104的,你可以在代理服务器上配置HTTP负载均衡"
怎么配置来?有什么教程吗?
6 楼 dinghyana 2008-05-07  
请问 如何验证 LoadBalance 呢?
我初步是这样做,您看对不对?
我在SunWebServer的本机实例 Https-{hostname}下
修改了 loadbalancer.xml 如下
<!DOCTYPE loadbalancer PUBLIC \"-//Sun Microsystems Inc.//DTD Sun ONE Application Server 7.1//EN\" \"sun-loadbalancer_1_2.dtd\">
<loadbalancer>
  <cluster name=\"cluster1\" policy=\"round-robin\">
    <!--
        Configure the listeners as space seperated URLs like
        listeners=\"http://host:port https://host:port\" For example:
       
    <instance name=\"instance1\" enabled=\"true\" disable-timeout-in-minutes=\"60\" listeners=\"http://localhost:80 https://localhost:443\" weight=\"100\"/>

    -->
    <instance name=\"instance1\" enabled=\"true\" disable-timeout-in-minutes=\"60\" listeners=\"http://localhost:38080 https://localhost:38181\" weight=\"100\"/>
    <instance name=\"instance1\" enabled=\"true\" disable-timeout-in-minutes=\"60\" listeners=\"http://localhost:38081 https://localhost:38182\" weight=\"100\"/>
    <web-module context-root=\"clusterjsp\" enabled=\"true\" disable-timeout-in-minutes=\"60\" error-url=\"sun-http-lberror.html\" />
    <health-checker url=\"/\" interval-in-seconds=\"10\" timeout-in-seconds=\"30\" />
  </cluster>
  <property name=\"reload-poll-interval-in-seconds\" value=\"60\"/>
  <property name=\"response-timeout-in-seconds\" value=\"30\"/>
  <property name=\"https-routing\" value=\"true\"/>
  <property name=\"require-monitor-data\" value=\"false\"/>
  <property name=\"active-healthcheck-enabled\" value=\"false\"/>
  <property name=\"number-healthcheck-retries\" value=\"3\"/>
  <property name=\"rewrite-location\" value=\"true\"/>
</loadbalancer>
然后我在Sun WebServer正常启动了 本机实例 ps:glassfish 两个实例已经正常启动.
最后我该如何验证 本机的 两个实例间的Load Balancer呢?
5 楼 robbin 2008-05-07  
dinghyana 写道
多机是集群,单机上的多个实例又叫啥?

前者叫做水平群集,后者叫做垂直群集。
4 楼 dinghyana 2008-05-07  
多机是集群,单机上的多个实例又叫啥?
3 楼 yunseu 2008-04-21  
你好:
    想请教一下在GLASSFISH或APPSERVER中如何将数据库部署到集群上?
谢谢!
2 楼 魔力猫咪 2008-04-05  
iamlibo 写道
请问这样在一台机器上做集群与在一台机器上单独安装性能那个会好一点?

这只是为了做试验已而,所以用虚拟机模拟多个计算机。现实中每台都是独立的计算机。
1 楼 iamlibo 2008-04-05  
请问这样在一台机器上做集群与在一台机器上单独安装性能那个会好一点?

相关推荐

    glassfish单机集群jk_little

    在这个场景中,它被用来配置Apache作为反向代理服务器,将客户端请求转发到Glassfish集群中的不同节点。我们需要在httpd.conf中添加或修改以下内容: 1. 加载mod_jk模块: ```apache LoadModule jk_module ...

    glassfish集群搭建手册

    标题《Glassfish集群搭建手册》指的是利用Oracle提供的Glassfish应用服务器软件进行集群配置的详细指南。此手册涵盖了在不同场景下通过图形化界面和命令行方式搭建集群的整个过程,并且描述了如何配置集群环境以支持...

    glassfish v3 集群搭建完全手册(自己写的教程)

    Glassfish集群的搭建是一项技术含量较高的工作,涉及到服务器管理、网络配置、负载均衡等多个方面。通过理解并掌握上述步骤,你将能够成功构建一个高效、可靠的Glassfish集群,实现应用的高可用性和可扩展性。在实际...

    GlassFish服务器集群搭建.pdf

    为了解决这个问题,我们可以利用GlassFish服务器提供的JNDI(Java Naming and Directory Interface)服务,将数据库资源转化为容器管理的资源,使得多个应用可以共享一个数据源,从而优化资源利用。 在GlassFish中...

    Glassfish关于tomcat的文档

    - **高可用性**:GlassFish支持集群配置,这意味着可以在多台服务器上运行相同的应用程序实例,提高了系统的可靠性和容错能力。 - **故障转移机制**:当某个节点出现故障时,其他节点可以自动接管其工作负载,确保...

    glassfish集群安装[整理].pdf

    总之,Glassfish集群安装涉及下载、解压缩、配置以及理解集群的基本概念和管理结构。通过集群,可以构建高可用性和可伸缩性的Java EE应用程序部署环境。在实际操作中,根据具体需求调整配置,以实现最佳的性能和可靠...

    GlassFish5.0安装包

    3. 扩展性:GlassFish支持集群部署,可以轻松扩展以应对高负载需求,通过Admin Console可以方便地管理集群节点。 4. 监控与诊断:内置的监控工具和日志系统有助于排查问题,提高系统稳定性。 5. 社区支持:作为...

    glassfish安装手册及源文件

    4. **使用Ant配置Glassfish**:为了创建默认的域(domain),你可以通过Ant命令来操作。如果你计划设置集群,可执行`ant -f setup-cluster.xml`。否则,若不需集群功能,可以执行`ant -f setup.xml`来创建单个域。 ...

    Glassfish安装和启动

    - 如果需要使用GlassFish V2的集群功能,可以使用以下命令替换上面的安装步骤: ``` lib/ant/bin/ant -f setup-cluster.xml ``` - 对于Windows系统: ``` lib\ant\bin\ant -f setup-cluster.xml ``` #### ...

    glassfish安装步骤.txt

    为了能够成功安装并配置Glassfish,确保系统环境中已经安装了合适的JDK版本以及Ant工具是非常重要的。 #### 二、准备工作 在开始安装Glassfish之前,请确保以下条件已经被满足: 1. **JDK 5或更高版本**:...

    glassfish-3.1.2.2.zip

    在Glassfish 3.1.2.2中,开发者可以利用JPA 2.0来处理数据库交互,这不仅包括对实体的定义、查询优化,还支持了多对多关联、延迟加载等高级特性。JSF 2.0的引入,则让UI开发变得更加直观和高效,其组件模型和Ajax...

    GlassFish安装向导

    三、集群配置 在 GlassFish 中,需要配置 JDBC 连接池。配置完成后,需要创建受管节点和实例。创建受管节点可以使用以下命令:`./asadmin create-instance --host h3cpdm20-ts --port 4848 -nodeagent h3cpdm20-...

    glassfish:具有自动缩放功能的GlassFish群集

    可获取有关群集如何工作以及如何配置高可用性以及如何测试此实现的更多详细信息。 GlassFish群集拓扑 由于使用了本地化的GlassFish集群体系结构,其拓扑包括三个节点组: 负载均衡器(LB) -用于处理所有传入的...

    glassfish网络开发服务器

    5. **集群支持**:支持负载均衡和故障转移,可以通过创建集群来提高应用的可用性和可扩展性。 6. **安全性**:GlassFish提供了丰富的安全特性,包括SSL/TLS加密、JAAS(Java Authentication and Authorization ...

    GlassFish部署项目说明.doc

    - 集群部署:在多个GlassFish实例之间创建集群,实现负载均衡和故障转移,提高应用程序的可用性。 - 容器管理:管理EJB(企业JavaBean)和其他Java EE组件,实现业务逻辑的容器化部署。 总之,GlassFish3.1作为一款...

    glassfish 教程指南

    `ha-administration-guide.pdf`是高可用性(High Availability, HA)管理指南,主要讨论如何构建容错集群,确保Glassfish应用在硬件故障或网络问题时仍能持续服务。 最后,`mq-dev-guide-c.pdf`可能是针对C语言...

    GlassFish 2.1.1QuickStartGuide

    - **服务器实例配置:** 位于 `&lt;glassfish-home&gt;/domains/domain1/config/server.xml`。 - **资源适配器配置:** 位于 `&lt;glassfish-home&gt;/domains/domain1/config/ra.xml`。 #### 四、应用开发与部署 **1. 支持...

Global site tag (gtag.js) - Google Analytics