Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
glassfish3+;阿帕奇&x2B;章鱼_Glassfish_Glassfish 3 - Fatal编程技术网

glassfish3+;阿帕奇&x2B;章鱼

glassfish3+;阿帕奇&x2B;章鱼,glassfish,glassfish-3,Glassfish,Glassfish 3,我试图构建一个由6个节点组成的glassfish3集群,该集群的前端有6台apache web服务器,由Octopus lb平衡。负载平衡器允许我根据每个节点上注册的负载发送请求。 我的设置如下: 客户端->八达通负载均衡器->apache web服务器->glassfish服务器。 Glassfish通过ajp与Apache通信。 我遇到的问题是,“似乎”这些会话没有在整个集群上进行应有的复制。 我找到了一些关于glassfish v2集群的文档,并且说如果我有一个有3个节点的集群,节点1将把

我试图构建一个由6个节点组成的glassfish3集群,该集群的前端有6台apache web服务器,由Octopus lb平衡。负载平衡器允许我根据每个节点上注册的负载发送请求。 我的设置如下:
客户端->八达通负载均衡器->apache web服务器->glassfish服务器。 Glassfish通过ajp与Apache通信。
我遇到的问题是,“似乎”这些会话没有在整个集群上进行应有的复制。
我找到了一些关于glassfish v2集群的文档,并且说如果我有一个有3个节点的集群,节点1将把他的会话复制到n2,n2复制到n3,n3复制到n1,这样一个或两个会话可能会失败,但会话仍然存在。
gf3也一样吗? 当我开始构建这个集群时,我的想法是,每个节点都会将自己的会话复制到集群中的所有其他节点。
如果会话复制与第2版一样工作,我想我的设置将永远无法工作,因为我的请求可能是来自n1的服务器,而第二个来自n5(n1不会直接将会话复制到n5),因此我将丢失会话数据。

有什么建议吗 因此,会话在我读取时被复制,我的意思是每个节点都将其会话备份到另一个节点。与glassfish v2不同,glassfish v2在版本3的环节点1->node2->node3->node1中执行此复制,每个节点基于哈希算法将其会话复制到其他节点

此外,您还需要一个粘性会话负载平衡器,因为如果您从节点1获得一个会话,并且节点1在节点3上复制它的会话,并且第二个请求被转发到节点2,那么您就有问题了。一个粘性会话将解决这个问题

现在实施的设置如下所示: octopus lb(无法使用粘性会话)->apache http(使用粘性会话的mod_jk loadbalancer)->glassfish节点。因此,即使octopus将我发送到错误的节点,基于会话cookie的apache负载平衡器也会将我发送到正确的glassfish节点。
如果你想知道为什么我使用octopus lb作为第一个均衡器,那是因为我平衡了其他服务和php应用程序。
希望这能帮助别人