파산 여부를 알 수있는 방법이 있습니까? OPEN, CLOSED 또는 EXPARED 중 어떤 것이 있습니까? 이 정보를 확인할 수있는 유일한 방법은 샤드에서 작업을 시도하는 것 같습니다.키네시스 샤드의 상태를 어떻게 알 수 있습니까?
답변
당신은 아마존 웹 서비스 자바 SDK를 사용할 수 있습니다 https://github.com/aws/aws-sdk-java 자원에 액세스하기위한 유용한 방법이 많이 있습니다
.
편집 : 죄송합니다. 질문에 잘못 이해했습니다. 샤드의 상태는 (아직) 직접 접근 할 수 없습니다. 그러나 트릭이 있습니다 : 닫힌 샤드에는 항상 "끝 시퀀스 번호"가 정의되어 있습니다. 이 방법으로 해킹 할 수 있습니다.
Javadoc의 발췌문;
공개 문자열 getEndingSequenceNumber()
범위의 종료 시퀀스 번호. OPEN 상태에있는 샤드는 종료 시퀀스 번호가 null입니다.
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.kinesis.AmazonKinesis;
import com.amazonaws.services.kinesis.AmazonKinesisClient;
import com.amazonaws.services.kinesis.model.DescribeStreamRequest;
import com.amazonaws.services.kinesis.model.DescribeStreamResult;
import com.amazonaws.services.kinesis.model.ListStreamsResult;
public class KinesisSandbox {
public static void main(String[] args) {
try {
String amazonKey = "x";
String amazonSecret = "y";
AmazonKinesis client = new AmazonKinesisClient(new BasicAWSCredentials(amazonKey, amazonSecret));
ListStreamsResult listStreamsResult = client.listStreams();
System.out.println("\nlistStreamsResult: " + listStreamsResult);
String streamName = listStreamsResult.getStreamNames().get(0);
DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName(streamName);
DescribeStreamResult describeStreamResult = client.describeStream(describeStreamRequest);
System.out.println("\n describeStreamResult.getStreamDescription().getStreamStatus(): "
+ describeStreamResult.getStreamDescription().getStreamStatus());
// System.out.println("\ndescribeStreamResult: " + describeStreamResult);
List<Shard> shards = describeStreamResult.getStreamDescription().getShards();
for (int i = 0; i < shards.size(); i++) {
Shard shard = shards.get(i);
if (shard.getSequenceNumberRange().getEndingSequenceNumber() == null) {
System.out.println("shard(" + i + "): " + shard.getShardId() + " is OPEN.");
} else {
System.out.println("shard(" + i + "): " + shard.getShardId() + " is CLOSED.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
-
죄송합니다.이 스트림 상태는 샤드 상태가 아닙니다. – thyme
오, 죄송합니다. 나는 그 부분을 놓쳤습니다. 내가 아는 한, 당신은 샤드의 상태에 직접적으로 (아직) 접근 할 수 없습니다. 하지만 트릭이 있습니다 : 닫힌 샤드에는 항상 "EndingSequenceNumber"가 정의되어 있습니다. 이 방법으로 해킹 할 수 있습니다. http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kinesis/model/SequenceNumberRange.html#getEndingSequenceNumber() – az3
- 1. 키네시스 스트림 리더의 상태
- 2. 프로그램 상태를 어떻게 알 수 있습니까?
- 3. 애니메이션의 종료 상태를 어떻게 알 수 있습니까?
- 4. wxFrame이 닫힌 상태를 어떻게 알 수 있습니까?
- 5. chrome.experimental.socket의 상태를 어떻게 알 수 있습니까?
- 6. elasticsearch에서 복제 상태를 어떻게 알 수 있습니까?
- 7. sqlite DB의 잠금 상태를 어떻게 알 수 있습니까?
- 8. Java에서 특정 프린터의 상태를 어떻게 알 수 있습니까?
- 9. Asterisk와 PHP의 통화 상태를 어떻게 알 수 있습니까?
- 10. Rails 앱에서 Memcache 상태를 어떻게 알 수 있습니까?
- 11. Selenium - 체크 박스의 현재 상태를 어떻게 알 수 있습니까?
- 12. 백그라운드에서 실행되는 AFNetworking AFURLConnectionOperation의 진행 상태를 어떻게 알 수 있습니까?
- 13. 입력 텍스트 상자의 HTML5 유효성 상태를 어떻게 알 수 있습니까?
- 14. 다른 사용자의 상태를 알 수 있습니까?
- 15. 어떻게 알 수 있습니까?
- 16. 어떻게 상태를 평가할 수 있습니까?
- 17. Iframe에서 HTTP 상태를 어떻게 얻을 수 있습니까?
- 18. QWebPage의로드가 완료되었는지 어떻게 알 수 있습니까?
- 19. 생년월일을 어떻게 알 수 있습니까?
- 20. mapView가로드되었는지 어떻게 알 수 있습니까?
- 21. ASIFormDataRequest를 어떻게 알 수 있습니까?
- 22. Android 활동이 완료되면 어떻게 알 수 있습니까?
- 23. 작업이 완료되면 어떻게 알 수 있습니까?
- 24. RavenDB 및 샤드의 재조정
- 25. twilio 메시지의 상태를 알 수있는 옵션이 있습니까?
- 26. C 함수가 작동하는지 어떻게 알 수 있습니까?
- 27. PreparedStatement가 어떻게 보이는지 어떻게 알 수 있습니까?
- 28. 앱이 일시 중지되었는지 어떻게 알 수 있습니까?
- 29. Windows Phone 7에서 프로그래밍 방식으로 wifi 상태를 알 수 있습니까?
- 30. 람다 + 키네시스 비용 제어
당신이 사용하는 프로그래밍 언어? – az3
정말 중요하지 않습니다. API를 통해이 정보를 얻을 수있는 방법이 있는지 궁금합니다. – thyme