Amazon Elasticache Redis群集 - 无法获取Endpoint [英] Amazon Elasticache Redis cluster - Can't get Endpoint
本文介绍了Amazon Elasticache Redis群集 - 无法获取Endpoint的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在Amazon Elasticache中获取Redis群集的端点。以下代码适用于Memcached群集,但不适用于Redis:
I need to get the endpoint for a Redis cluster in Amazon Elasticache. The following code works for a Memcached cluster, but not for a Redis:
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.elasticache.AmazonElastiCacheClient;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersRequest;
import com.amazonaws.services.elasticache.model.DescribeCacheClustersResult;
import com.amazonaws.services.elasticache.model.CacheNode;
import com.amazonaws.services.elasticache.model.CacheCluster;
import com.amazonaws.services.elasticache.model.Endpoint;
public class Redis {
public static void main(String[] args) {
AWSCredentials credentials =
new ProfileCredentialsProvider("default").getCredentials();
AmazonElastiCacheClient amazonClient = new AmazonElastiCacheClient(credentials);
amazonClient.setRegion(Regions.EU_WEST_1);
DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();
dccRequest.setShowCacheNodeInfo(true);
dccRequest.withCacheClusterId("app-001");
DescribeCacheClustersResult clusterResult =
amazonClient.describeCacheClusters(dccRequest);
CacheCluster cacheCluster = clusterResult.getCacheClusters().get(0);
System.out.println("cluster: " + cacheCluster);
System.out.println("endpoint: " + cacheCluster.getConfigurationEndpoint());
}
}
输出为:
cluster: {CacheClusterId: app-001,ClientDownloadLandingPage: https://console.aws.amazon.com/elasticache/home#client-download:,CacheNodeType: cache.r3.large,Engine: redis,EngineVersion: 2.8.19,CacheClusterStatus: available,NumCacheNodes: 1,PreferredAvailabilityZone: eu-west-1a,CacheClusterCreateTime: Thu May 21 11:43:03 CEST 2015,PreferredMaintenanceWindow: mon:04:00-mon:05:00,PendingModifiedValues: {CacheNodeIdsToRemove: [],},CacheSecurityGroups: [],CacheParameterGroup: {CacheParameterGroupName: default.redis2.8,ParameterApplyStatus: in-sync,CacheNodeIdsToReboot: []},CacheSubnetGroupName: default,CacheNodes: [{CacheNodeId: 0001,CacheNodeStatus: available,CacheNodeCreateTime: Thu May 21 11:43:03 CEST 2015,Endpoint: {Address: app-001.3pusxn.0001.euw1.cache.amazonaws.com,Port: 6379},ParameterGroupStatus: in-sync,CustomerAvailabilityZone: eu-west-1a}],AutoMinorVersionUpgrade: true,SecurityGroups: [{SecurityGroupId: sg-3231f657,Status: active}],ReplicationGroupId: app,SnapshotRetentionLimit: 0,SnapshotWindow: 22:00-23:00}
endpoint: null
注意集群对象如何包含端点信息(密钥:端点
),但仍然 getConfigurationEndpoint
返回 null
。
Note how the cluster object contains the endpoint information (key: Endpoint
), but nevertheless getConfigurationEndpoint
returns null
.
如何获取端点?
推荐答案
通常情况下,我在发布问题后立即找到解决方案。在Redis中,您必须访问缓存节点:
As it usually happens, I found the solution right after posting the question. In Redis you have to access the cache nodes:
cacheCluster.getCacheNodes().get(0).getEndpoint());
这篇关于Amazon Elasticache Redis群集 - 无法获取Endpoint的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文