Azure中的Tomcat负载平衡
我们正在Azure中实现一个安装在两个片上的Tomcat小农场(2个节点),并将Azure负载平衡器放在前面。这基本上是一个循环、非粘性会话平衡器 webapp使用Tomcat的容器管理安全(forms)身份验证,目前通过datasourcealm 正如我们预期的那样,当用户循环到他们没有进行身份验证的节点时,他们会得到身份验证错误 我做了大量的研究,似乎没有一种指定的方法来处理这个问题……有人建议我们将节点放在Apache服务器后面,使用mod_jk;我们重新设计身份验证过程,使用cookie来确认身份验证;我们使用Tomcat集群 我们实现这一点最简单的方法是什么?我们的应用程序不使用任何会话(除了Tomcat的CMS)。我们不想离开Tomcat的CMS,尽管我们并不反对在必要时构建JAAS实现。但实际上,我们唯一需要支持的是跨节点身份验证 感谢您的帮助 编辑:我们尝试在Azure上进行memcached,得到以下结果:Azure中的Tomcat负载平衡,tomcat,authentication,azure,load-balancing,Tomcat,Authentication,Azure,Load Balancing,我们正在Azure中实现一个安装在两个片上的Tomcat小农场(2个节点),并将Azure负载平衡器放在前面。这基本上是一个循环、非粘性会话平衡器 webapp使用Tomcat的容器管理安全(forms)身份验证,目前通过datasourcealm 正如我们预期的那样,当用户循环到他们没有进行身份验证的节点时,他们会得到身份验证错误 我做了大量的研究,似乎没有一种指定的方法来处理这个问题……有人建议我们将节点放在Apache服务器后面,使用mod_jk;我们重新设计身份验证过程,使用cookie
2013-07-08 21:50:55.463 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@dcd4755
2013-07-08 21:50:55.463 INFO net.spy.memcached.MemcachedConnection: Reconnecting due to failure to connect to {QA sa=srvr.cloud.com/1XX.1XX.1XX.1XX:11XXX, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:399)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:247)
at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:915)
我们的context.xml:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:srvr.cloud.com:11XXX"
sticky="false"
sessionBackupAsync="false"
lockingMode="uriPattern:/path1|/path2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
/>
一种方法是将memcached托管在服务器上,或者利用在Tomcat服务器之间共享会话数据 “memcached会话管理器是一个tomcat会话管理器,它将会话保存在memcached中,用于高可用、可扩展和容错的web应用程序。它支持粘性和非粘性配置,目前正在使用tomcat 6.x和7.x。用于粘性会话会话故障切换(tomcat崩溃)支持,对于非粘性会话,这是默认设置(默认情况下,不同的Tomcat为不同的请求提供会话)。此外,通过会话迁移支持memcashed故障转移(memcached崩溃)。也不应存在单点故障,因此当memcached失败时,会话不会丢失(但可以在tomcat或其他memcached中使用)。” 请参阅。上稍微过时的讨论,可能重复: