使用 Auto Discovery - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Auto Discovery

如要开始使用 Auto Discovery,请遵循下述步骤:

步骤 1:获取配置终端节点

如要连接至某个集群,客户端程序必须知道集群的配置终端节点。请参阅主题查找集群的端点(控制台)

您也可以使用带有 --show-cache-node-info 参数的 aws elasticache describe-cache-clusters 命令:

不论您使用什么方法查找集群的终端节点,配置终端节点的地址中始终有 .cfg

例 使用适用于 ElastiCache 的 Amazon CLI 查找端点

对于 Linux、macOS 或 Unix:

aws elasticache describe-cache-clusters \ --cache-cluster-id mycluster \ --show-cache-node-info

对于 Windows:

aws elasticache describe-cache-clusters ^ --cache-cluster-id mycluster ^ --show-cache-node-info

此操作将生成类似于以下内容的输出(JSON 格式):

{ "CacheClusters": [ { "Engine": "memcached", "CacheNodes": [ { "CacheNodeId": "0001", "Endpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", "CustomerAvailabilityZone": "us-east-1e" }, { "CacheNodeId": "0002", "Endpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com" }, "CacheNodeStatus": "available", "ParameterGroupStatus": "in-sync", "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", "CustomerAvailabilityZone": "us-east-1a" } ], "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.memcached1.4", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "mycluster", "PreferredAvailabilityZone": "Multiple", "ConfigurationEndpoint": { "Port": 11211, "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" }, "CacheSecurityGroups": [], "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "NumCacheNodes": 2, "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", "CacheSubnetGroupName": "default", "EngineVersion": "1.4.24", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", "CacheNodeType": "cache.r3.large" } ] }

步骤 2:下载 ElastiCache Cluster Client

如要利用 Auto Discovery,客户端程序必须使用 ElastiCache Cluster Client。ElastiCache Cluster Client 可用于 Java、PHP 和 .NET,其中包含适用于发现和连接至您的所有缓存节点所需的全部逻辑。

下载 ElastiCache Cluster Client
  1. 登录 Amazon 管理控制台并打开 ElastiCache 控制台 (https://console.aws.amazon.com/elasticache/)。

  2. 在 ElastiCache 控制台上,选择 ElastiCache Cluster Client,然后选择 Download(下载)

ElastiCache Cluster Client for Java 的源代码可在 https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java 获取。此库是以常见的 Spymemcached 客户端为基础。ElastiCache Cluster Client 根据亚马逊软件许可 https://aws.amazon.com/asl 发布。您可以按照自己的方式自由修改源代码。您甚至可以将代码并入其他开放源 Memcached 库中或者您自己的客户端代码中。

注意

如要使用适用于 PHP 的 ElastiCache Cluster Client,您首先需要将其安装在您的 Amazon EC2 实例上。有关更多信息,请参阅安装适用于 PHP 的 ElastiCache Cluster Client

对于支持 TLS 的客户端,请下载 PHP 版本 7.4 或更高版本的二进制文件。

若要使用适用于 .NET 的 ElastiCache Cluster Client,您首先需要将其安装在您的 Amazon EC2 实例上。有关更多信息,请参阅安装适用于 .NET 的 ElastiCache Cluster Client

步骤 3:修改您的应用程序

修改您的应用程序,以便它可以使用 Auto Discovery。以下部分介绍了如何使用适用于 Java、PHP 和 .NET 的 ElastiCache Cluster Client。

重要

指定集群的配置终端节点时,请确保其地址中有 ".cfg",如此处所示。请勿使用 CNAME 或其中没有 ".cfg" 的终端节点。

"mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";

未明确指定集群的配置终端节点会导致配置到特定节点。