2014-01-13 43 views
2

试图设置(在测试环境中)双服务器Glassfish 4集群,以准备从现有的单实例Glassfish 3.1 webserver迁移到支持负载平衡和故障转移的集群。如何配置Glassfish 4集群进行粘性会话?

主要是一位应用程序编写者,Glassfish的noddy-GUI界面看起来很吸引我。在实践中,我一直无法使Glassfish 4集群正常工作,并想知道是否有人可以给我所需的配置。有很多博客和指南描述了这个过程,但对于Glassfish的不同版本,它们都略有不同,并且它们都没有出现在GF4上。

的设置:

服务器1:app01 容纳DAS,和NODE01-> INSTANCE0101(SSH)

服务器2:app02 容纳NODE02-INSTANCE0102(SSH)

群集:CLUSTER01,涉及NODE01-> INSTANCE0101和NODE02-> INSTANCE0102

设置了两个服务器java,并在app01上安装了Glassfish 4。已经在app01上安装了Apache。 我们的旧服务器使用Apache和mod_jk将适当的请求转发给Glassfish。我提出了在/etc/httpd/conf/httpd.conf中相应的变化将请求转发给JK连接器:(从适当的部分拉)

LoadModule jk_module modules/mod_jk.so 
    JkWorkersFile /etc/httpd/conf/workers.properties 
    JkLogFile /var/log/httpd/mod_jk.log 
    JkLogLevel error 
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 

    JkMount /* loadbalancer 

这是从workers.properties了我认为是适当的所有的博客帖子。

worker.list=loadbalancer 

    # default properties for workers 
    worker.template.type=ajp13 
    worker.template.lbfactor=50 
    worker.template.connection_pool_timeout=600 
    worker.template.socket_keepalive=1 
    worker.template.socket_timeout=300 

    # properties for worker1 
    worker.worker1.reference=worker.template 
    worker.worker1.host=app01.btodomain.bto.org 
    worker.worker1.port=8009 

    # properties for worker2 
    worker.worker2.reference=worker.template 
    worker.worker2.host=app02.btodomain.bto.org 
    worker.worker2.port=8010 

    # properties for loadbalancer 
    worker.loadbalancer.type=lb 
    worker.loadbalancer.balance_workers=worker1,worker2 

Glassfish的配置我认为合适的:

create-jvm-options --target cluster01 "-DjvmRoute=\\${AJP_INSTANCE_NAME}" 
    create-jvm-options --target cluster01 "-Dcom.sun.enterprise.web.connector.enableJK=\\${AJP_PORT}" 
    create-system-properties --target instance0101 AJP_INSTANCE_NAME=instance0101 
    create-system-properties --target instance0102 AJP_INSTANCE_NAME=instance0102 
    create-system-properties --target instance0101 AJP_PORT=8009 
    create-system-properties --target instance0102 AJP_PORT=8010 
    create-network-listener --protocol http-listener-1 --listenerport “${AJP_PORT}” --jkenabled true --target cluster01 jk-connector 

除了不能工作的配置,设置摆弄的时候,我已经两次结束了在的情况下测试应用程序将不会重新部署或与Glassfish一起部署/部署声称已有一个相同名称的应用程序(当它不存在时)

任何帮助,将不胜感激。

马克

回答

0

检查您的worker.list属性。它只包含负载均衡器,但不包含工作人员。

+0

与工人补充说,它仍然不正常 – user2307922

0

只要改变worker1为属性 “AJP_INSTANCE_NAME = instance0101” 例如:

属性worker1

worker.instance0101.reference = worker.template worker.instance0101.host = app01.btodomain.bto.org worker.instance0101.port = 8009

执行相同的所有工人及其respectives GlassFish的性能