Amazon ElastiCache
用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

查找复制组的终端节点

应用程序可以连接到复制组中的任何节点,前提是它具有该节点的 DNS 终端节点和端口号。根据您运行的是 Redis (已禁用集群模式) 还是 Redis (已启用集群模式) 复制组,您可能会关注不同的终端节点。

Redis (已禁用集群模式)

具有副本的 Redis (已禁用集群模式)群集有两种类型的终端节点:主终端节点节点终端节点。主终端节点是一个 DNS 名称,始终解析为群集中的主节点。主终端节点不受群集更改的影响,如将只读副本提升为主角色。对于写入活动,我们建议您的应用程序连接到主终端节点,而不是直接连接到主群集。

对于读取活动,应用程序可以连接到群集的任何节点。与主终端节点不同,节点终端节点会解析为特定终端节点。如果您在您的群集中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点终端节点。

对于读取活动,应用程序可以连接到群集的任何节点。与主终端节点不同,节点终端节点会解析为特定终端节点。如果您在您的群集中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点终端节点。

Redis (已启用集群模式)

带副本的 Redis (已启用集群模式)群集 (由于具有多个分片 (API/CLI:节点组),因此它们还可以有多个主节点) 具有与 Redis (已禁用集群模式)群集不同的终端节点结构。Redis (已启用集群模式)有一个配置终端节点,它“知道”群集中的所有主终端节点和节点终端节点。您的应用程序连接到配置终端节点。只要您的应用程序对群集的配置终端节点进行写入或读取,Redis 在后台确定密钥所属的分片以及分片所使用的终端节点。这对于您的应用程序是完全透明的。

您可以使用 ElastiCache 控制台、AWS CLI 或 ElastiCache API 来查找群集的终端节点。

查找复制组的终端节点

要查找复制组的终端节点,请参阅以下主题之一:

Redis (已禁用集群模式)

具有副本的 Redis (已禁用集群模式)群集有两种类型的终端节点:主终端节点节点终端节点。主终端节点是一个 DNS 名称,始终解析为群集中的主节点。主终端节点不受群集更改的影响,如将只读副本提升为主角色。对于写入活动,我们建议您的应用程序连接到主终端节点,而不是直接连接到主群集。

对于读取活动,应用程序可以连接到群集的任何节点。与主终端节点不同,节点终端节点会解析为特定终端节点。如果您在您的群集中进行更改(例如添加或删除副本),则必须在您的应用程序中更新节点终端节点。

Redis (已启用集群模式)

您可以使用 AWS CLI describe-replication-groups 命令查看复制组的详细信息,包括终端节点。使用 -replication-group-id 参数可指定您要查找哪些复制组的终端节点。

有关查找终端节点的 AWS CLI 示例,请参阅 (AWS CLI) 查找复制组的终端节点.

例 (AWS CLI) 查找复制组的终端节点

以下代码列出了 my-repl-group 的详细信息,包括复制组的终端节点。

aws elasticache describe-replication-groups -replication-group-id myreplgroup

该操作输出类似以下的内容(JSON 格式)。ReadEndpoint 为每个节点的唯一终端节点。应该对所有读取操作使用此终端节点。对于写入操作,请使用 PrimaryEndpoint 终端节点。

{ "ReplicationGroups": [ { "Status": "available", "Description": "test", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2a", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-001.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-002.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-002" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup-003.1abc4d.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "myreplgroup-003" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "myreplgroup.1abc4d.ng.0001.usw2.cache.amazonaws.com" } } ], "ReplicationGroupId": "myreplgroup", "AutomaticFailover": "enabled", "SnapshottingClusterId": "myreplgroup-002", "MemberClusters": [ "myreplgroup-001", "myreplgroup-002", "myreplgroup-003" ], "PendingModifiedValues": {} } ] }

有关更多信息,请转至 ElastiCache 的 AWS CLI 主题 describe-replication-groups

(ElastiCache API) 查找复制组的终端节点

您可以使用 ElastiCache API DescribeReplicationGroups 操作查看复制组的详细信息,其中使用 ReplicationGroupId 参数指定特定复制组。

有关查找终端节点的 ElastiCache API 示例,请参阅 (ElastiCache API) 查找复制组的终端节点

例 (ElastiCache API) 查找复制组的终端节点

以下代码列出了 myReplGroup 的详细信息,包括复制组的终端节点。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &MaxRecords=100 &ReplicationGroupId=myReplGrp &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

该操作的输出内容应类似如下所示。ReadEndpoint 为每个节点的唯一终端节点。应该对所有读取操作使用此终端节点。对于写入操作,请使用 PrimaryEndpoint 终端节点。

<DescribeReplicationGroupsResponse xmlns="http://elasticache.amazonaws.com/doc/2015-02-02/"> <DescribeReplicationGroupsResult> <ReplicationGroups> <ReplicationGroup> <SnapshottingClusterId>myreplgrp</SnapshottingClusterId> <MemberClusters> <ClusterId>myreplgrp-001</ClusterId> </MemberClusters> <NodeGroups> <NodeGroup> <NodeGroupId>0001</NodeGroupId> <PrimaryEndpoint> <Port>6379</Port> <Address>myreplgrp.q68zge.ng.0001.use1devo.elmo-dev.amazonaws.com</Address> </PrimaryEndpoint> <Status>available</Status> <NodeGroupMembers> <NodeGroupMember> <CacheClusterId>myreplgrp-001</CacheClusterId> <ReadEndpoint> <Port>6379</Port> <Address>myreplgrp-001.q68zge.0001.use1devo.elmo-dev.amazonaws.com</Address> </ReadEndpoint> <PreferredAvailabilityZone>us-west-2c</PreferredAvailabilityZone> <CacheNodeId>0001</CacheNodeId> <CurrentRole>primary</CurrentRole> </NodeGroupMember> <NodeGroupMember> <CacheClusterId>myreplgrp-002</CacheClusterId> <ReadEndpoint> <Port>6379</Port> <Address>myreplgrp-002.q68zge.0002.use1devo.elmo-dev.amazonaws.com</Address> </ReadEndpoint> <PreferredAvailabilityZone>us-west-2b</PreferredAvailabilityZone> <CacheNodeId>0002</CacheNodeId> <CurrentRole>replica</CurrentRole> </NodeGroupMember> </NodeGroupMembers> </NodeGroup> </NodeGroups> <ReplicationGroupId>myreplgrp</ReplicationGroupId> <Status>available</Status> <PendingModifiedValues /> <Description>My replication group</Description> </ReplicationGroup> </ReplicationGroups> </DescribeReplicationGroupsResult> <ResponseMetadata> <RequestId>144745b0-b9d3-11e3-8a16-7978bb24ffdf</RequestId> </ResponseMetadata> </DescribeReplicationGroupsResponse>

Redis (已禁用集群模式)

<PrimaryEndpoint></PrimaryEndpoint> 标记之间找到了主终端节点(包括端口)。

<CacheClusterId>myreplgrp-001</CacheClusterId> <PrimaryEndpoint> <Port>6379</Port> <Address>myreplgrp.q68zge.ng.0001.use1devo.elmo-dev.amazonaws.com</Address> </PrimaryEndpoint>

<ReadEndpoint></ReadEndpoint> 标记之间找到了复制组中每个节点组的只读终端节点。

<ReadEndpoint> <Port>6379</Port> <Address>myreplgrp-001.q68zge.0001.use1devo.elmo-dev.amazonaws.com</Address> </ReadEndpoint>

<CacheClusterId>myreplgrp-002</CacheClusterId> <ReadEndpoint> <Port>6379</Port> <Address>myreplgrp-002.q68zge.0001.use1devo.elmo-dev.amazonaws.com</Address> </ReadEndpoint>

Redis (已启用集群模式)

<ConfigurationEndpoint></ConfigurationEndpoint> 标记之间找到了配置终端节点(包括端口)。

<CacheClusterId>myreplgrp-001</CacheClusterId>

有关更多信息,请转至 ElastiCache API 参考主题 DescribeReplicationGroups