本文整理汇总了Java中com.amazonaws.services.kinesis.model.GetShardIteratorResult.getShardIterator方法的典型用法代码示例。如果您正苦于以下问题:Java GetShardIteratorResult.getShardIterator方法的具体用法?Java GetShardIteratorResult.getShardIterator怎么用?Java GetShardIteratorResult.getShardIterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.services.kinesis.model.GetShardIteratorResult
的用法示例。
在下文中一共展示了GetShardIteratorResult.getShardIterator方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getShardIterator
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
private String getShardIterator(GetShardIteratorRequest getShardIteratorRequest) throws InterruptedException {
GetShardIteratorResult getShardIteratorResult = null;
int attempt = 0;
while (attempt <= getShardIteratorMaxAttempts && getShardIteratorResult == null) {
try {
getShardIteratorResult = kinesisClient.getShardIterator(getShardIteratorRequest);
} catch (AmazonServiceException ex) {
if (isRecoverableException(ex)) {
long backoffMillis = fullJitterBackoff(
getShardIteratorBaseBackoffMillis, getShardIteratorMaxBackoffMillis, getShardIteratorExpConstant, attempt++);
LOG.warn("Got recoverable AmazonServiceException. Backing off for "
+ backoffMillis + " millis (" + ex.getErrorMessage() + ")");
Thread.sleep(backoffMillis);
} else {
throw ex;
}
}
}
if (getShardIteratorResult == null) {
throw new RuntimeException("Rate Exceeded for getShardIterator operation - all " + getShardIteratorMaxAttempts +
" retry attempts returned ProvisionedThroughputExceededException.");
}
return getShardIteratorResult.getShardIterator();
}
示例2: getShardIterator
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public String getShardIterator(KinesisStreamShard shard, String shardIteratorType, @Nullable String startingSeqNum) throws InterruptedException {
GetShardIteratorResult getShardIteratorResult = null;
int attempt = 0;
while (attempt <= getShardIteratorMaxAttempts && getShardIteratorResult == null) {
try {
getShardIteratorResult =
kinesisClient.getShardIterator(shard.getStreamName(), shard.getShard().getShardId(), shardIteratorType, startingSeqNum);
} catch (ProvisionedThroughputExceededException ex) {
long backoffMillis = fullJitterBackoff(
getShardIteratorBaseBackoffMillis, getShardIteratorMaxBackoffMillis, getShardIteratorExpConstant, attempt++);
LOG.warn("Got ProvisionedThroughputExceededException. Backing off for "
+ backoffMillis + " millis.");
Thread.sleep(backoffMillis);
}
}
if (getShardIteratorResult == null) {
throw new RuntimeException("Rate Exceeded for getShardIterator operation - all " + getShardIteratorMaxAttempts +
" retry attempts returned ProvisionedThroughputExceededException.");
}
return getShardIteratorResult.getShardIterator();
}
示例3: getPreviewRecords
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
public static List<com.amazonaws.services.kinesis.model.Record> getPreviewRecords(
ClientConfiguration awsClientConfig,
KinesisConfigBean conf,
int maxBatchSize,
GetShardIteratorRequest getShardIteratorRequest
) throws StageException {
AmazonKinesis kinesisClient = getKinesisClient(awsClientConfig, conf);
GetShardIteratorResult getShardIteratorResult = kinesisClient.getShardIterator(getShardIteratorRequest);
String shardIterator = getShardIteratorResult.getShardIterator();
GetRecordsRequest getRecordsRequest = new GetRecordsRequest();
getRecordsRequest.setShardIterator(shardIterator);
getRecordsRequest.setLimit(maxBatchSize);
GetRecordsResult getRecordsResult = kinesisClient.getRecords(getRecordsRequest);
return getRecordsResult.getRecords();
}
示例4: getShardItertor
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
private String getShardItertor() {
// either return a cached one or get a new one via a GetShardIterator request.
if (currentShardIterator == null) {
String shardId;
//If ShardId supplied use it, else choose first one
if (!getEndpoint().getShardId().isEmpty()) {
shardId = getEndpoint().getShardId();
} else {
DescribeStreamRequest req1 = new DescribeStreamRequest()
.withStreamName(getEndpoint().getStreamName());
DescribeStreamResult res1 = getClient().describeStream(req1);
shardId = res1.getStreamDescription().getShards().get(0).getShardId();
}
LOG.debug("ShardId is: {}", shardId);
GetShardIteratorRequest req = new GetShardIteratorRequest()
.withStreamName(getEndpoint().getStreamName())
.withShardId(shardId)
.withShardIteratorType(getEndpoint().getIteratorType());
if (hasSequenceNumber()) {
req.withStartingSequenceNumber(getEndpoint().getSequenceNumber());
}
GetShardIteratorResult result = getClient().getShardIterator(req);
currentShardIterator = result.getShardIterator();
}
LOG.debug("Shard Iterator is: {}", currentShardIterator);
return currentShardIterator;
}
示例5: getIterator
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
private void getIterator()
throws ResourceNotFoundException
{
GetShardIteratorRequest getShardIteratorRequest = new GetShardIteratorRequest();
getShardIteratorRequest.setStreamName(split.getStreamName());
getShardIteratorRequest.setShardId(split.getShardId());
// Explanation: when we have a sequence number from a prior read or checkpoint, always use it.
// Otherwise, decide if starting at a timestamp or the trim horizon based on configuration.
// If starting at a timestamp, sue the session variable ITER_START_TIMESTAMP when given, otherwise
// fallback on starting at ITER_OFFSET_SECONDS from timestamp.
if (lastReadSeqNo == null) {
// Important: shard iterator type AT_TIMESTAMP requires 1.11.x or above of the AWS SDK.
if (SessionVariables.getIterFromTimestamp(session)) {
getShardIteratorRequest.setShardIteratorType("AT_TIMESTAMP");
long iterStartTs = SessionVariables.getIterStartTimestamp(session);
if (iterStartTs == 0) {
long startTs = System.currentTimeMillis() - (SessionVariables.getIterOffsetSeconds(session) * 1000);
getShardIteratorRequest.setTimestamp(new Date(startTs));
}
else {
getShardIteratorRequest.setTimestamp(new Date(iterStartTs));
}
}
else {
getShardIteratorRequest.setShardIteratorType("TRIM_HORIZON");
}
}
else {
getShardIteratorRequest.setShardIteratorType("AFTER_SEQUENCE_NUMBER");
getShardIteratorRequest.setStartingSequenceNumber(lastReadSeqNo);
}
GetShardIteratorResult getShardIteratorResult = clientManager.getClient().getShardIterator(getShardIteratorRequest);
shardIterator = getShardIteratorResult.getShardIterator();
}
示例6: main
import com.amazonaws.services.kinesis.model.GetShardIteratorResult; //导入方法依赖的package包/类
public static void main(String[] args) {
AmazonKinesisClient kinesisClient = Helper.setupKinesisClient();
// Retrieve the Shards from a Stream
DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName(Helper.properties().getProperty("kinesisStreamName"));
DescribeStreamResult describeStreamResult;
List<Shard> shards = new ArrayList<>();
String lastShardId = null;
do {
describeStreamRequest.setExclusiveStartShardId(lastShardId);
describeStreamResult = kinesisClient.describeStream(describeStreamRequest);
shards.addAll(describeStreamResult.getStreamDescription().getShards());
if (shards.size() > 0) {
lastShardId = shards.get(shards.size() - 1).getShardId();
}
} while (describeStreamResult.getStreamDescription().getHasMoreShards());
// Get Data from the Shards in a Stream
// Hard-coded to use only 1 shard
String shardIterator;
GetShardIteratorRequest getShardIteratorRequest = new GetShardIteratorRequest();
getShardIteratorRequest.setStreamName(Helper.properties().getProperty("kinesisStreamName"));
getShardIteratorRequest.setShardId(shards.get(0).getShardId());
getShardIteratorRequest.setShardIteratorType("TRIM_HORIZON");
GetShardIteratorResult getShardIteratorResult = kinesisClient.getShardIterator(getShardIteratorRequest);
shardIterator = getShardIteratorResult.getShardIterator();
// Continuously read data records from shard.
List<Record> records;
while (true) {
// Create new GetRecordsRequest with existing shardIterator.
// Set maximum records to return to 1000.
GetRecordsRequest getRecordsRequest = new GetRecordsRequest();
getRecordsRequest.setShardIterator(shardIterator);
getRecordsRequest.setLimit(1000);
GetRecordsResult result = kinesisClient.getRecords(getRecordsRequest);
// Put result into record list. Result may be empty.
records = result.getRecords();
// Print records
for (Record record : records) {
ByteBuffer byteBuffer = record.getData();
System.out.println(String.format("Seq No: %s - %s", record.getSequenceNumber(),
new String(byteBuffer.array())));
}
try {
Thread.sleep(1000);
} catch (InterruptedException exception) {
throw new RuntimeException(exception);
}
shardIterator = result.getNextShardIterator();
}
}