尋找連線端點 - Amazon ElastiCache 的雷迪斯

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

尋找連線端點

您的應用程式會使用端點連線到叢集。端點是節點或叢集的唯一位址。

如果您並未使用 Automatic Discovery,則必須將用戶端設定為使用個別的節點端點以進行讀取和寫入。您也必須在新增和移除節點時追蹤這些端點。

要使用哪些端點
  • Redis 獨立節點:請使用叢集的端點來進行讀取和寫入操作。

     

  • Redis (停用叢集模式) 叢集,使用主要端點來執行所有寫入作業。使用「讀取器端點」來將傳入連線平均分散在所有讀取複本間的端點中。使用個別「節點端點」以進行讀取操作 (在 API/CLI 中,它們稱為「讀取端點」)。

     

  • Redis (啟用叢集模式) 叢集,使用叢集的組態端點執行支援啟用叢集模式命令的所有作業。您必須使用支援 Redis 叢集的用戶端 (Redis 3.2)。您仍然可以從個別節點端點讀取 (在 API/CLI 中,它們稱為「讀取端點」)。

     

以下各節可引導您探索執行引擎所需的端點。

如果 Redis (停用叢集模式) 叢集只有一個節點,則會使用該節點的端點來進行讀取和寫入。如果 Redis (停用叢集模式) 叢集有多個節點,則端點類型有三種:主要端點讀取者端點節點端點

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動,我們建議您的應用程式連線到主要端點。

讀取者端點會將傳入連線平均分散在 ElastiCache for Redis 叢集中所有僅供讀取複本間的端點中。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除,讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis 叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ) 來確保讀取者端點的高可用性。

注意

讀取者端點並非負載平衡器。它是一筆 DNS 記錄,會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動,應用程式也可連線到叢集中的任何節點。與主要端點不同,節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本),您必須更新您應用程式中的節點端點。

尋找 Redis (停用叢集模式) 叢集的端點
  1. 登入 AWS Management Console 並前往 https://console.aws.amazon.com/elasticache/ 開啟 ElastiCache 主控台。

  2. 從導覽窗格選擇 Redis clusters (Redis 叢集)。

    隨即會出現叢集畫面,顯示 Redis (停用叢集模式) 和 Redis (啟用叢集模式) 叢集的清單。

  3. 若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非左側的按鈕)。

    圖片:Redis (停用叢集模式) 叢集的主要端點

    Redis (停用叢集模式) 叢集的主要和讀取者端點

    如果叢集中只有一個節點,就不會有主要端點,因此您必須繼續下一個步驟。

  4. 如果 Redis (停用叢集模式) 叢集含有複本節點,您可以選擇叢集名稱並選擇 Nodes (節點) 標籤,以尋找叢集的複本節點端點。

    隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。

    圖片:Redis (停用叢集模式) 叢集的節點端點

    Redis (停用叢集模式) 叢集的節點端點

  5. 將端點複製到剪貼簿:

    1. 逐一尋找您要複製的端點。

    2. 選擇端點前面的複製圖示。

    現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱「連線至節點」。

Redis (停用叢集模式) 主要端點看起來如下。其中的差異取決於是否啟用傳輸中加密。

未啟用傳輸中加密

clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379

已啟用傳輸中加密

master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port master.ncit.ameaqx.use1.cache.amazonaws.com:6379

Redis (啟用叢集模式) 叢集有單一組態端點。只要連線到組態端點,您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

尋找 Redis (啟用叢集模式) 叢集的端點
  1. 登入 AWS Management Console 並前往 https://console.aws.amazon.com/elasticache/ 開啟 ElastiCache 主控台。

  2. 從導覽窗格選擇 Redis clusters (Redis 叢集)。

    隨即會出現叢集畫面,顯示 Redis (停用叢集模式) 和 Redis (啟用叢集模式) 叢集的清單。選擇您想連線的 Redis (啟用叢集模式) 叢集。

  3. 若要尋找叢集的組態端點,請選擇叢集名稱 (而非選項按鈕)。

  4. Configuration endpoint (組態端點) 會顯示於 Cluster details (叢集詳細資訊) 中。若要加以複製,請選擇端點左側的複製圖示。

您可以使用 Amazon ElastiCache 的 AWS CLI 來探索節點、叢集和複寫群組的端點。

尋找節點和叢集的端點 (AWS CLI)

您可以使用 AWS CLI 與 describe-cache-clusters 命令,來探索叢集和其節點的端點。若是 Redis 叢集,則命令會傳回叢集端點。如果您包含選用參數 --show-cache-node-info,則命令也會傳回叢集中個別節點的端點。

下列命令會擷取單節點 Redis (停用叢集模式) 叢集 mycluster 的叢集資訊。

重要

--cache-cluster-id 參數可搭配使用 Redis 複寫群組中的單節點 Redis (停用叢集模式) 叢集 ID 或特定節點 ID。Redis 複寫群組中的 --cache-cluster-id 為 4 位數的值,例如 0001。如果 --cache-cluster-id 是 Redis 複寫群組中的叢集 (節點) ID,則輸出會包含 replication-group-id

若為 Linux、macOS 或 Unix:

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

針對 Windows:

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

上述操作的輸出看起來應會與以下內容相似 (JSON 格式)。

{ "CacheClusters": [ { "CacheClusterStatus": "available", "SecurityGroups": [ { "SecurityGroupId": "sg-77186e0d", "Status": "active" } ], "CacheNodes": [ { "CustomerAvailabilityZone": "us-east-1b", "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z", "CacheNodeStatus": "available", "CacheNodeId": "0001", "Endpoint": { "Address": "redis-cluster.amazonaws.com", "Port": 6379 }, "ParameterGroupStatus": "in-sync" } ], "AtRestEncryptionEnabled": false, "CacheClusterId": "redis-cluster", "TransitEncryptionEnabled": false, "CacheParameterGroup": { "ParameterApplyStatus": "in-sync", "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.redis3.2" }, "NumCacheNodes": 1, "PreferredAvailabilityZone": "us-east-1b", "AutoMinorVersionUpgrade": true, "Engine": "redis", "AuthTokenEnabled": false, "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "tue:08:30-tue:09:30", "CacheSecurityGroups": [], "CacheSubnetGroupName": "default", "CacheNodeType": "cache.t2.small", "DataTiering": "disabled" "EngineVersion": "3.2.10", "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z" } ] }

如需詳細資訊,請參閱 describe-cache-clusters 主題。

尋找複寫群組的端點 (AWS CLI)

您可以使用 AWS CLI 與 describe-replication-groups 命令,來探索複寫群組和其叢集的端點。此命令會傳回複寫群組的主要端點、複寫群組中所有叢集 (節點) 的清單和其端點,以及讀取器端點。

下列操作會擷取複寫群組 myreplgroup 的主要端點與讀取器端點。使用主要端點來進行所有寫入操作。

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

針對 Windows:

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

此操作的輸出看起來應會與以下內容相似 (JSON 格式)。

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

如需詳細資訊,請參閱 AWS CLI CLI 命令參考中的 describe-replication-groups

您可以使用 Amazon ElastiCache API 來探索節點、叢集和複寫群組的端點。

找節點和叢集的端點 (ElastiCache API)

您可以使用 ElastiCache API 與 DescribeCacheClusters 動作,探索叢集和其節點的端點。若是 Redis 叢集,則命令會傳回叢集端點。如果您包含選用參數 ShowCacheNodeInfo,則動作也會傳回叢集中個別節點的端點。

https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterId=mycluster &ShowCacheNodeInfo=true &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &Version=2015-02-02 &X-Amz-Credential=<credential>

尋找複寫群組的端點 (ElastiCache API)

您可以使用 ElastiCache API 與 DescribeReplicationGroups 動作,探索複寫群組和其叢集的端點。此動作會傳回複寫群組的主要端點、複寫群組中所有叢集的清單和其端點,以及讀取器端點。

下列操作會擷取複寫群組 myreplgroup 的主要端點 (PrimaryEndpoint)、讀取器端點 (ReaderEndpoint) 與個別節點端點 (ReadEndpoint)。使用主要端點來進行所有寫入操作。

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

如需詳細資訊,請參閱 DescribeReplicationGroups