问题标签 [session-affinity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
352 浏览

ruby-on-rails - 设计是否需要会话亲和性?

当我在我的应用程序中使用负载均衡器时,了解设计是使用基于 cookie 的身份验证还是仅使用基于会话的身份验证变得很重要?

使用基于 cookie 的身份验证会很棒,这样我就不必为已签名的用户为他的所有请求保留同一服务器,并且管理负载平衡会更容易。

那么,设计是否使用开箱即用的基于 cookie 的身份验证?还是我必须启用它?还是仅支持基于会话的身份验证?

0 投票
1 回答
2580 浏览

websphere - 在负载均衡器上启用会话亲和性,而不在 websphere 中进行集群

我们需要在两个单独的主机中对 2 个独立的 WAS7 基本版本 JVM 进行负载平衡。两个 JVM 将由单个 IHS Web 服务器提供服务。我们没有创建任何集群。除了为每个 JVM 配置唯一的 HTTP 会话克隆 ID,如下所示:

导航 :

i) 在Name字段中,输入HttpSessionCloneId

ii) 在Value字段中,输入服务器的唯一值。唯一值必须是 8 - 9 个字母数字字符;例如,``

我们是否需要进行任何其他配置更改以在 WAS 或 IHS 端启用会话亲和性?

0 投票
1 回答
577 浏览

google-compute-engine - GCE HTTPS 负载均衡器会话亲和性

我有一个配置有一个后端服务和 3 个实例组的 HTTPS 负载均衡器:

端点协议:HTTPS 命名端口:https 超时:600 秒 健康检查:ui-health2 会话亲和性:生成的 cookie 亲和性 cookie TTL:0 秒 Cloud CDN:禁用 Instance group Zone Healthy Autoscaling Balancing mode Capacity group-ui-normal us-central1-c 1 / 1 Off Max. CPU: 80% 100% group-ui-large us-central1-c 2 / 2 Off Max. CPU: 90% 100% group-ui-xlarge us-central1-c 2 / 2 Off Max. CPU: 80% 100%

默认主机和路径规则,SSL 终止。

问题是会话关联不能正常工作,我不知道为什么。大多数时候它似乎可以工作,但随机请求由具有相同 GCLB cookie 的不同实例响应。所有这一切都通过每 5 秒的 AJAX 请求进行复制,对实例 A 有 20 多个请求,然后对实例 B 的请求,然后对 A 的其他 20 多个请求......

我查看了 LB 日志,没有什么奇怪的(除了随机奇怪的响应),CPU 低。我在哪里可以找出某个实例是否“不健康”持续 5 秒?

Apache 日志显示运行状况 ping 或请求中没有错误。

也许“平衡模式”和会话亲和性之间存在一些奇怪的交互?

0 投票
0 回答
208 浏览

heroku - 扩展时保留 Heroku 会话亲和性

根据Heroku 文档,当会话亲和性打开并且 Dynos(节点)的数量增加时,现有流量会均匀分布到新的 Dynos。

这会影响“旧” Dynos 的客户端被分配给他们之前未通信的 Dynos。这在缩小规模时是不可避免的,但在扩大规模时则不是必需的。

是否有可能阻止 Heroku 负载均衡器将现有会话分配给新的 Dynos,而不是将它们与原始会话保持一致?

0 投票
1 回答
784 浏览

kubernetes - 如何使用 GCE 负载均衡器与 Ingress 控制器实现会话亲和性

我有以下入口配置:

ingressProd.yaml

我很难找到有关如何为上述启用会话亲和性的资源。以前使用LoadBalancer过按预期工作的服务。

我需要调查什么?

0 投票
0 回答
1316 浏览

c# - Azure App Service:是否可以为特定请求启用 ARR Affinity?

我已将无状态 Web 应用程序部署到 Azure 应用服务,并在应用程序设置中禁用了 ARR Affinity。是否可以禁用此功能,但针对特定请求启用它?

我在 2016 年遇到了benjaminperkins 的一篇文章,该帖子表明可以通过添加“Arr-Disable-Session-Affinity”标头来为单个请求禁用此功能,但我想要反过来,“Arr-Enable-Session-亲和力”。

我希望能够向单个实例发出请求,以在远程操作后预热内存中的缓存。我了解如何在启用 ARRAffinity 时构建对 App Server Web 应用程序实例的 URL 请求,但这对我不起作用,因为我不想全局启用它。

这是我想做的一个例子:

在应用服务上禁用 ARRAffinity 时,有没有办法做到这一点?

0 投票
1 回答
477 浏览

udp - Google Cloud:运行状况检查未从 UDP 内部负载均衡器中删除失败的实例

我正在一个项目中移动我们的 SIP 基础设施。到 GCP。

我正在使用带有私有 IP 的 UDP 内部负载均衡器将呼叫从 Asterisk 路由到我的 Kamailio SBC,Asterisk 配置了负载均衡器的地址 IP 作为单个传出端点。

在此处输入图像描述

我的内部 UDP 负载均衡器在 5060 前端运行,后端有 2 个 SBC 和端口 80 上的基本 http 健康检查。

在每个 kamailio SBC 上,我在端口 5060 上列出了我的应用程序,在端口 80 上列出了 apache 服务器以进行健康检查,因此停止 httpd 会将实例的状态更改为不健康。

转发规则

后端服务

健康检查

所有超时设置为 3 秒,由会话亲和性(持久性)完成的内部 UDP LB 路由规则不会立即删除,大约需要 15 分钟(没有任何流量)才能被删除。

同样的情况,当实例再次健康时,LB 需要 15 分钟才能考虑并开始接收流量。

当我使用带有外部地址 IP 的 UDP 负载均衡器时,我没有遇到这个问题,因为我发送流量的星号地址是指定的,因此每次调用的 5 元组哈希值都会不同。

但是对于使用内部 IP 的 UDP LB,5 元组哈希将始终相同(相同的 src/dst IP:Port),因此我如何配置会话亲和性(持久性)规则的超时或强制刷新我的内存磅。

也许这是一个错误!有没有人遇到同样的问题?感谢并期待是否有人可以帮助我解决这个问题?

BR,奥斯

0 投票
1 回答
1136 浏览

azure - 禁止关联 cookie 以强制客户端到另一个 Azure 应用程序节点

我有一个 C# Web 应用程序,它使用一个需要很长时间(2 分钟)才能初始化的组件(Progress Telerik Sitefinity CMS)。在此阶段访问该站点的用户将被重定向到每秒轮询状态的页面,直到初始化完成。(这是内置的 Sitefinity 行为)。

我在 Azure 应用服务中托管我的应用程序。如果我增加实例的数量(扩大规模),我的一些用户最终会在新节点仍在初始化时使用它。问题是,由于 Azure 添加的关联 cookie,它们停留在此节点上。

我想要亲和力,除非网站正在初始化。在这种情况下,我想删除 cookie 并进行投票。在那种情况下,我会被分配一个随机节点,因此会在几秒钟内找到一个初始化节点。

问题是:我如何实现这一目标?发生的大部分事情都是在 Sitefinity 中处理的,所以我求助于更改 global.asax 中的内容。它不起作用。我试图把它放在我的 global.asax.cs 中:

如何强制我的客户端到不同的节点?

编辑我想我在这里 找到了(部分)问题。

  • 首先,请求“/”。这将返回 302 重定向,但也返回 ARRAffinity cookie。
  • 然后,请求“/sitefinity/status”。ARR-Disable-Session-Affinity 和 cookie 都被剥离。这意味着,cookie 不会在客户端上清除。
  • 轮询时,客户端已经拥有 cookie。所以用户永远不会被重定向到另一个节点。

所以这可能是问题所在。现在要解决它...

编辑

我遵循了 Vesselin Vassilevs 的建议并将其添加到我的站点配置文件中:

但是因为我仍然偶然到达了初始化节点,所以我还通过更改我的 global.asax.cs 来抑制 affinity cookie:

0 投票
1 回答
703 浏览

amazon-ec2 - 不中断会话的 AWS WebApp 蓝/绿部署

我的用例:我有一个由位于 1 个 EC2 实例前面的弹性负载均衡器提供服务的 Web 应用程序。该架构旨在模拟蓝/绿部署流程,这意味着当我需要更新代码并切换我的 ELB 指向的实例时,我将打开第二个实例。

假设 Instance-A 具有我的应用程序的当前版本,我的 ELB 正在将流量路由到该实例,因为它是唯一可用的。我想将更新推送到我的应用程序,因此我在实例 B 上部署了我的应用程序的新版本打开实例 B 并部署新版本的代码)。同时,任何访问我的应用程序的用户仍将被路由到 Instance-A 并创建一个会话,直到我进行切换。

一旦部署了Instance-B并且可以使用较新的代码,我如何确保 ELB仅在Instance-B上发送新流量,并在instanceA上保留旧流量(以前的用户及其会话),直到我从负载均衡器?

希望这是有道理的,我知道这种架构设计不是蓝/绿部署的正确实现。但是由于我的应用程序的大小和预算,我想限制我使用的实例数量。

谢谢您的帮助。

0 投票
2 回答
1547 浏览

amazon-web-services - 如何配置 AWS 网络负载均衡器以实现端到端 HTTPS 加密,同时保持会话亲和性?

我有一个 VPC,在不同的可用区中有两个 EC2 实例。客户端通过 HTTPS 连接到我的应用程序。我一直在尝试在需要会话亲和性的两个应用程序节点之间设置负载平衡。

最初,我使用带有粘性会话的 Application Load Balancer。这行得通,但我最近发现我正在处理的项目需要从客户端到应用程序节点的不间断端到端加密。因为 ALB 必须解密连接以执行基于 cookie 的路由,所以它无法满足此要求。即使我重新加密了 ALB 和 EC2 之间的连接,它仍然不是端到端的。

经过一番调查,我确定网络负载均衡器可能能够提供端到端加密,但我不确定如何获得会话亲和性。我读过它可以通过散列客户端连接详细信息并继续将所有未来连接路由到同一节点直到达到超时值来完成,但这个问题似乎表明它完全不可能,但没有真的很详细。

我将如何在网络负载均衡器中获取会话亲和性?如果这无法实现,我将如何使用 AWS 负载均衡器建立端到端加密?