尝试设置(在测试环境中)双服务器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重新部署或取消部署/部署的情况,声称已经存在同名的应用程序(当它没有时)
任何帮助都将不胜感激。
标记
答案 0 :(得分:0)
检查您的worker.list属性。它只包含负载均衡器,但不包含工作者。
答案 1 :(得分:0)
只需更改属性“AJP_INSTANCE_NAME = instance0101”示例:
的worker1worker1的属性
worker.instance0101.reference = worker.template worker.instance0101.host = app01.btodomain.bto.org worker.instance0101.port = 8009
为所有工人及其各自的玻璃鱼属性做同样的事情