

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为您的负载均衡器选择粘性策略
<a name="welcome"></a>

*Ryan Griffin，Amazon Web Services ()AWS*

*2024 年 7 月*（[文件历史记录](doc-history.md)）

*Stickiness* 这个术语用于描述负载均衡器的功能，即重复将流量从客户端路由到单个目的地，而不是在多个目的地之间平衡流量。例如，来自客户端 A 的流量可以持续路由到特定的服务器，这样服务器就可以维护会话状态数据。如果将来自客户端 A 的流量路由到两台不同的服务器，则每台服务器都可能缺少可供另一台服务器使用的重要信息。

因此，通常需要通过负载均衡器保持一致的客户端连接。粘性有两种类型：粘性会话和目标群体的粘性。
+ **粘性会话** — 在 Amazon Elastic Compute Cloud (Amazon EC2) 实例中维护本地会话数据，以简化应用程序架构或提高应用程序性能，因为该实例可以在本地维护或缓存会话状态信息。 AWS 目前提供两种类型的粘性会话，本指南对此进行了详细讨论：应用程序 Cookie 和负载均衡器 Cookie。
+ **目标组粘性**-在蓝/绿部署中，您可能部署了多个版本的应用程序，并且您可能希望客户端在会话期间继续使用相同版本的应用程序。在这种情况下，您可以使用目标组粘性将来自客户端的所有通信路由到同一个目标组，而不是同一个实例。 EC2 

您可以单独使用这两种粘性策略，也可以一起使用。

本指南描述了不同类型的负载均衡器粘性以及适用的用例，以帮助您选择策略。该指南包括说明每种策略的 AWS CloudFormation 模板。

## 代码示例
<a name="code"></a>

 本指南提供了一个附带的.zip 文件，其中包含四个 AWS CloudFormation 模板，您可以部署这些模板来构建基本架构并尝试每种粘性策略。我们建议您在实验室环境中部署这些模板来测试每种方法。

[![](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/load-balancer-stickiness/images/download.png)下载示例代码](samples/stickiness.zip)

下载内容包括以下模板：
+ `basic.yml`— 在没有粘性的情况下设置 Application Load Balancer。
+ `targetgroupstickiness.yml`— 根据目标群体表现出粘性。
+ `stickysessionslb.yml`— 演示使用负载均衡器生成的 Cookie 的粘性会话。
+ `stickysessionsapp.yml`— 演示使用基于应用程序的 Cookie 的粘性会话。

要部署这些模板，您需要一个 active:AWS 帐户和[CloudFormation 控制台](https://console.aws.amazon.com/cloudformation/)访问权限。有关部署 CloudFormation 模板的 step-by-steps说明，请参阅 CloudFormation 文档中的[创建堆栈](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。