如何为Sticky会话配置Glassfish 4群集?

时间:2014-01-13 09:29:38

标签: apache java-ee configuration ssh glassfish

尝试设置(在测试环境中)双服务器Glassfish 4集群,准备从我们现有的单实例Glassfish 3.1 Web服务器迁移到支持负载平衡和故障转移的服务器。

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

设置:

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

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

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

在app01上设置了两个服务器java,并安装了Glassfish 4。在app01上安装了Apache。 我们的旧服务器使用Apache和mod_jk将适当的请求转发给Glassfish。我在/etc/httpd/conf/httpd.conf中进行了相应的更改,以将请求转发给jk-connector :(从适当的部分提取)

    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重新部署或取消部署/部署的情况,声称已经存在同名的应用程序(当它没有时)

任何帮助都将不胜感激。

标记

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

只需更改属性“AJP_INSTANCE_NAME = instance0101”示例:

的worker1

worker1的属性

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

为所有工人及其各自的玻璃鱼属性做同样的事情