문제

최신 Java AWS SDK를 사용하여 Java 앱에서 프로그래밍 방식으로 ElastiCache 엔드 포인트 목록을 가져 오려고합니다.일이 일어나지 않는 것처럼 보이지 않는 것처럼 보이지만 유효한 CacheCluster를 찾을 수 있지만 노드를 나열하면 비어 있습니다.다음은 내 코드가 있습니다 :

CacheCluster cc = it.next();

System.out.println("Cache node type: " + cc.getCacheNodeType());
System.out.println("Number cache nodes: " + cc.getNumCacheNodes());

List<CacheNode> listCache = cc.getCacheNodes();

System.out.println("List size: " + listCache.size());
.

실행할 때 다음과 같은 출력을 얻습니다.

Cache node type: cache.m1.small 
Number cache nodes: 1 
List size: 0
.

이렇게 간단하지만 작동하지 않는 것 같습니다.단일 노드가있는 ElastiCache 클러스터를 시작했지만 getCachenodes ()를 호출 할 때 목록이 비어 있습니다.나는이 코드를 로컬로 그리고 EC2 인스턴스에서 실행하려고 시도했으며, 나는 동일한 일을 두 번 얻으려고합니다.

내가 잘못 할 수있는 일에 대한 아이디어는 무엇입니까?

도움이 되었습니까?

해결책

캐시 노드를 얻을 수 없음 ElastiCache Cluster 선택적 showdetails 플래그를 사용하여 Comsiss CopplyCacheClustersRequest deseripeCacheClusters () . 이 클래스에 대해 문서화 되었음에도 불구하고 showdetails 깃발이 있습니다.

선택적 showdetails 플래그를 사용하여 상세히 검색 할 수 있습니다. 캐시 클러스터와 연결된 캐시 노드에 대한 정보. 자세한 내용은 캐시 노드 엔드 포인트의 DNS 주소 및 포트를 포함합니다.

아마도 이것은 실제로 setshowcachenodeInfo () trookeCacheCluster 요청에 포함될 수있는 옵션 플래그가 캐시 노드 정보를 검색 할 수있는 옵션 플래그입니다.

AWS 팀 응답이 부정확하고 실제로 그 질문을 해결하지 못했습니다. 왜 방법 getCachenodes () cachecluster 클래스는 해당 정보를 반환하지 않습니다.

어쨌든

단순히 방법 getCachenodes () Class CacheCluster"http://docs.amazonwebservices.com/awsjavasdk/latest/javadoc/com/amazonaws/services/elasticache/model/describecacheclustersresult .html # GetCacheClusters % 28 % 29 "rel="noreferrer "> getCacheClusters () ComplecyCacheClustersResult 대신 알려지지 않고 광고 된 것으로 작동합니다 (즉, 나는이 직접을 시도하지 않았습니다).

행운을 빕니다!


업데이트

여기에 그의 목표를 달성하기 위해 성공적으로 사용 된 코드 샌더가 위에서 설명한 접근 방식을 확인합니다.

AmazonElastiCacheClient client = new AmazonElastiCacheClient(credentials);
DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();
dccRequest.setShowCacheNodeInfo(true);

DescribeCacheClustersResult clusterResult = client.describeCacheClusters(dccRequest);
.

누락 된 조각은 그의 초기 솔루션과 유사해야합니다. :

List<CacheCluster> cacheClusters = clusterResult.getCacheClusters();
for (CacheCluster cacheCluster : cacheClusters) {
    List<CacheNode> cacheNodes = cacheCluster.getCacheNodes();

    System.out.println("List size: " + cacheNodes.size());
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top