当前位置: 首页 > 知识库问答 >
问题:

粘性和非粘性会议

戈念
2023-03-14

我想知道粘性和非粘性会议之间的区别。我从网上读到的:

粘滞:只有一个会话对象将在那里。

非粘性会话:每个服务器节点的会话对象

共有1个答案

湛玄裳
2023-03-14

当您的网站仅由一个web服务器提供服务时,对于每个客户机-服务器对,将创建一个会话对象,并保留在web服务器的内存中。来自客户端的所有请求都将发送到此web服务器并更新此会话对象。如果某些数据需要在交互期间存储在session对象中,那么它将存储在这个session对象中,并在session存在时一直保持在那里。

但是,如果您的网站由多个web服务器提供服务,这些服务器位于负载均衡器后面,负载均衡器将决定每个请求应该发送到哪个实际的(物理的)web服务器。例如,如果负载均衡器后面有3个web服务器A、B和C,则可能是服务器A为www.mywebsite.com提供服务,服务器B为www.mywebsite.com提供服务,服务器C为www.mywebsite.com/提供服务。

现在,如果请求来自(物理上)3个不同的服务器,每个服务器都为您创建了一个会话对象,因为这些会话对象位于三个独立的盒子上,所以没有直接的方法可以让其中一个知道另一个的会话对象中有什么。为了在这些服务器会话之间进行同步,您可能必须将会话数据写入/读取到一个对所有服务器都通用的层中--比如一个数据库。现在,为这个用例向db写入数据和从db读取数据可能不是一个好主意。现在,粘滞会话的角色来了。

如果指示负载均衡器使用粘性会话,则所有交互都将与同一物理服务器发生,即使存在其他服务器。因此,在与此网站的整个交互过程中,您的会话对象将是相同的。

总而言之,如果会话粘滞,所有请求都将定向到同一个物理web服务器,而如果不粘滞,负载均衡器可以选择任何一个webserver来服务您的请求。

作为一个例子,您可以在这里阅读关于Amazon的弹性负载平衡器和粘性会话:http://aws.typepad.com/aws/2010/04/new-ellastic-load-balancing-feature-sticky-sessions.html

 类似资料:
  • 尝试使用Redis设置一个具有非粘性会话的tomcat集群。 尝试使用:https://github.com/redisson/redisson/wiki/14.-integration%20with%20frameworks#145-spring-session 添加了2个jar文件。使用Tomcat7。 雷迪斯起来了。它会找到服务器。我没看到任何错误。 现在当我去说经理测试。它将进行循环负载平

  • 查看用户在某个时间单位内,进行某个事件的频次分布,以此分析用户对功能的使用情况或依赖程度。 1.1. 1. 功能说明 查看满足特定条件的用户在某个时间单位内,进行某个事件的频次分布; 分析产品或功能对用户来说的粘性程度; 页面如下图: Figure: images 1.2. 2.操作详解 1.2.1. a.选择时间单位、事件和筛选条件 Figure: images 标识 说明 A 统计中使用的时间

  • 介绍 Sticky 组件与 CSS 中position: sticky属性实现的效果一致,当组件在屏幕范围内时,会按照正常的布局排列,当组件滚出屏幕范围时,始终会固定在屏幕顶部。 引入 import { createApp } from 'vue'; import { Sticky } from 'vant'; const app = createApp(); app.use(Sticky);

  • 使用指南 组件介绍 Sticky 组件与 CSS 中position: sticky属性实现的效果一致,当组件在屏幕范围内时,会按照正常的布局排列,当组件滚出屏幕范围时,始终会固定在屏幕顶部。 引入方式 import { Sticky } from "feart"; components:{ 'fe-sticky':Sticky, } 代码演示 基础用法 <fe-sticky>

  • 目前,我正在尝试在Google云上创建一个Kubernetes集群,其中包含两个负载平衡器:一个用于后端(在Spring boot中),另一个用于前端(在Angular中),其中每个服务(负载平衡器)与两个副本(POD)通信。为了实现这一点,我创建了以下入口: 上面提到的入口可以使前端应用程序与后端应用程序提供的REST API进行通信。但是,我必须创建粘性会话,以便每个用户都与同一个POD进行通

  • 但我们正面临着这种方法的问题。由于out应用程序主要用于车间,负载通常在短时间内增加(车间开始),每个车间参与者都与前两个实例有一个粘性会话,而新的实例几乎没有。正因为如此,表现一直很差。 第一个想法是:让我们禁用粘性会话。但这破坏了我们的网络套接字,因为它们需要粘性会话(至少这是我读到的)。另一个问题是负载减少。实例关闭,套接字连接也会丢失。 是否有一种方法可以在实例之间转移用户会话,或者让we