Azure 容器应用中的会话亲和性

会话亲和性,也称为粘性会话,是一种允许你将来自客户端的所有请求路由到同一副本的功能。 此功能适用于需要与同一副本建立一致连接的有状态应用程序。

会话粘性是使用 HTTP Cookie 强制实现的。 启用 HTTP 入口时,此功能在单一修订模式下可用。 如果上一副本不再可用,则客户端可能会路由到新的副本。

如果应用不需要会话亲和性,建议不要启用它。 禁用会话亲和性后,入口会在副本之间更均匀地分配请求,从而提高应用的性能。

注意

只有当应用处于单一修订模式且入口类型为 HTTP 时,才支持会话亲和性。

配置会话亲和性

通过在 ingress.stickySessions 配置部分设置 affinity 属性来配置会话亲和性。 以下示例演示如何为容器应用配置会话亲和性:

{
  ...
  "configuration": {
      "ingress": {
          "external": true,
          "targetPort": 80,
          "transport": "auto",
          "stickySessions": {
              "affinity": "sticky"
          }
      }
  }
}

可以在通过 Azure 门户创建容器应用时启用会话亲和性。 若要启用会话亲和性,请执行以下操作:

  1. 在“创建容器应用”页上,选择“应用设置”选项卡。
  2. 在“应用程序入口设置”部分,为“会话亲和性”设置选择“启用”。

Screenshot of the session affinity setting in Create Container App page.

还可以在创建容器应用后启用或禁用会话亲和性。 若要启用会话亲和性,请执行以下操作:

  1. 在门户中转到你的应用。
  2. 选择“入口”。
  3. 可以通过选择或取消选择“启用”来启用或禁用“会话亲和性”。
  4. 选择“保存”。

Screenshot of session affinity session on Ingress page.

后续步骤