TJ-*_*TJ- 581
当您的网站仅由一个Web服务器提供服务时,对于每个客户端 - 服务器对,会创建一个会话对象并保留在Web服务器的内存中.来自客户端的所有请求都转到此Web服务器并更新此会话对象.如果某些数据需要在交互期间存储在会话对象中,则会将其存储在此会话对象中,并且只要会话存在就会保留在该会话对象中.
但是,如果您的网站由位于负载均衡器后面的多个Web服务器提供服务,则负载均衡器会决定每个请求应该转到哪个实际(物理)Web服务器.例如,如果负载均衡器后面有3个Web服务器A,B和C,则可能是从服务器A提供www.mywebsite.com/index.jsp,www.mywebsite.com/login.jsp是从服务器B和www.mywebsite.com/accoutdetails.php从服务器C提供.
现在,如果请求是从(物理上)3个不同的服务器提供的,那么每个服务器都为您创建了一个会话对象,并且因为这些会话对象位于三个独立的框中,所以没有直接的方法可以知道会话对象中有什么内容另一个.为了在这些服务器会话之间进行同步,您可能必须将会话数据写入/读取到所有人共有的层 - 例如DB.现在,为这个用例写入数据和从数据库读取数据可能不是一个好主意.现在,粘性会话的角色来了.
如果指示负载均衡器使用粘性会话,则即使存在其他服务器,也会在同一物理服务器上进行所有交互.因此,在与本网站的整个交互过程中,您的会话对象将是相同的.
总而言之,如果是Sticky Sessions,您的所有请求都将被定向到同一个物理Web服务器,而在非粘性负载均衡器的情况下,可以选择任何Web服务器来满足您的请求.
例如,您可以在此处阅读有关Amazon的Elastic Load Balancer和粘性会话的信息:http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
Nic*_*ico 98
我在这里找到了一些更详细的答案:https: //stackoverflow.com/a/11045462/592477
或者你可以在那里阅读==>
当您使用负载平衡时,它意味着您有多个tomcat实例,并且您需要划分负载.
归档时间: |
|
查看次数: |
133162 次 |
最近记录: |