本文整理汇总了Java中com.amazonaws.services.kinesis.model.ResourceNotFoundException类的典型用法代码示例。如果您正苦于以下问题:Java ResourceNotFoundException类的具体用法?Java ResourceNotFoundException怎么用?Java ResourceNotFoundException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ResourceNotFoundException类属于com.amazonaws.services.kinesis.model包,在下文中一共展示了ResourceNotFoundException类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: validateStreamName
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
@Override
protected void validateStreamName(AmazonKinesisAsyncClient client, String streamName) {
DescribeStreamResult describeResult = null;
try {
describeResult = getClient().describeStream(streamName);
String streamStatus = describeResult.getStreamDescription().getStreamStatus();
if(!StreamStatus.ACTIVE.name().equals(streamStatus) && !StreamStatus.UPDATING.name().equals(streamStatus)) {
setInitializationFailed(true);
addError("Stream " + streamName + " is not ready (in active/updating status) for appender: " + name);
}
}
catch(ResourceNotFoundException rnfe) {
setInitializationFailed(true);
addError("Stream " + streamName + " doesn't exist for appender: " + name, rnfe);
}
}
开发者ID:guardian,项目名称:kinesis-logback-appender,代码行数:17,代码来源:KinesisAppender.java
示例2: createTopic
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Create the specified topic with the specified number of partitions
*/
public void createTopic(String topicName, int partitions) {
LOGGER.info("Determining if Kinesis topic: {} already exists...", topicName);
try{
final DescribeStreamRequest describeRequest = new DescribeStreamRequest();
describeRequest.withStreamName(topicName);
this.client.describeStream(describeRequest);
}catch(ResourceNotFoundException rnf){
LOGGER.info("Kinesis stream for topic: {} does not exist, creating now with shard count: {}",topicName, partitions);
final CreateStreamRequest request = new CreateStreamRequest();
request.withStreamName(topicName);
request.withShardCount(partitions);
this.client.createStream(request);
this.waitForStreamToBecomeAvailable(topicName, DEFAULT_WAIT_TIME_MINUTES);
LOGGER.info("Create topic completed for topic: {}", topicName);
}
}
开发者ID:shagwood,项目名称:micro-genie,代码行数:21,代码来源:KinesisAdmin.java
示例3: testProvisionProducerSuccessfulWithNewStream
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
@Test
public void testProvisionProducerSuccessfulWithNewStream() {
AmazonKinesis amazonKinesisMock = mock(AmazonKinesis.class);
KinesisBinderConfigurationProperties binderProperties = new KinesisBinderConfigurationProperties();
KinesisStreamProvisioner provisioner = new KinesisStreamProvisioner(amazonKinesisMock, binderProperties);
ExtendedProducerProperties<KinesisProducerProperties> extendedProducerProperties =
new ExtendedProducerProperties<>(new KinesisProducerProperties());
String name = "test-stream";
Integer shards = 1;
DescribeStreamResult describeStreamResult =
describeStreamResultWithShards(Collections.singletonList(new Shard()));
when(amazonKinesisMock.describeStream(any(DescribeStreamRequest.class)))
.thenThrow(new ResourceNotFoundException("I got nothing"))
.thenReturn(describeStreamResult);
when(amazonKinesisMock.createStream(name, shards))
.thenReturn(new CreateStreamResult());
ProducerDestination destination = provisioner.provisionProducerDestination(name, extendedProducerProperties);
verify(amazonKinesisMock, times(2))
.describeStream(any(DescribeStreamRequest.class));
verify(amazonKinesisMock)
.createStream(name, shards);
assertThat(destination.getName()).isEqualTo(name);
}
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-aws-kinesis,代码行数:32,代码来源:KinesisStreamProvisionerTests.java
示例4: testProvisionConsumerSuccessfulWithNewStream
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
@Test
public void testProvisionConsumerSuccessfulWithNewStream() {
AmazonKinesis amazonKinesisMock = mock(AmazonKinesis.class);
KinesisBinderConfigurationProperties binderProperties = new KinesisBinderConfigurationProperties();
KinesisStreamProvisioner provisioner = new KinesisStreamProvisioner(amazonKinesisMock, binderProperties);
int instanceCount = 1;
int concurrency = 1;
ExtendedConsumerProperties<KinesisConsumerProperties> extendedConsumerProperties =
new ExtendedConsumerProperties<>(new KinesisConsumerProperties());
extendedConsumerProperties.setInstanceCount(instanceCount);
extendedConsumerProperties.setConcurrency(concurrency);
String name = "test-stream";
String group = "test-group";
DescribeStreamResult describeStreamResult =
describeStreamResultWithShards(Collections.singletonList(new Shard()));
when(amazonKinesisMock.describeStream(any(DescribeStreamRequest.class)))
.thenThrow(new ResourceNotFoundException("I got nothing"))
.thenReturn(describeStreamResult);
when(amazonKinesisMock.createStream(name, instanceCount * concurrency))
.thenReturn(new CreateStreamResult());
ConsumerDestination destination = provisioner.provisionConsumerDestination(name, group,
extendedConsumerProperties);
verify(amazonKinesisMock, times(2))
.describeStream(any(DescribeStreamRequest.class));
verify(amazonKinesisMock)
.createStream(name, instanceCount * concurrency);
assertThat(destination.getName()).isEqualTo(name);
}
开发者ID:spring-cloud,项目名称:spring-cloud-stream-binder-aws-kinesis,代码行数:39,代码来源:KinesisStreamProvisionerTests.java
示例5: streamExists
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Helper method to determine if an Amazon Kinesis stream exists.
*
* @param kinesisClient
* The {@link AmazonKinesisClient} with Amazon Kinesis read privileges
* @param streamName
* The Amazon Kinesis stream to check for
* @return true if the Amazon Kinesis stream exists, otherwise return false
*/
private static boolean streamExists(AmazonKinesisClient kinesisClient, String streamName) {
DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName(streamName);
try {
kinesisClient.describeStream(describeStreamRequest);
return true;
} catch (ResourceNotFoundException e) {
return false;
}
}
开发者ID:SumoLogic,项目名称:sumologic-kinesis-connector,代码行数:20,代码来源:KinesisUtils.java
示例6: getStreamDescription
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Internal method to retrieve the stream description and get the shards from AWS.
*
* Gets from the internal cache unless not yet created or too old.
*
* @param streamName
* @return
*/
protected InternalStreamDescription getStreamDescription(String streamName)
{
InternalStreamDescription desc = this.streamMap.get(streamName);
if (desc == null || System.currentTimeMillis() - desc.getCreateTimeStamp() >= MAX_CACHE_AGE_MILLIS) {
desc = new InternalStreamDescription(streamName);
DescribeStreamRequest describeStreamRequest = clientManager.getDescribeStreamRequest();
describeStreamRequest.setStreamName(streamName);
// Collect shards from Kinesis
String exclusiveStartShardId = null;
List<Shard> shards = new ArrayList<>();
do {
describeStreamRequest.setExclusiveStartShardId(exclusiveStartShardId);
DescribeStreamResult describeStreamResult = clientManager.getClient().describeStream(describeStreamRequest);
String streamStatus = describeStreamResult.getStreamDescription().getStreamStatus();
if (!streamStatus.equals("ACTIVE") && !streamStatus.equals("UPDATING")) {
throw new ResourceNotFoundException("Stream not Active");
}
desc.addAllShards(describeStreamResult.getStreamDescription().getShards());
if (describeStreamResult.getStreamDescription().getHasMoreShards() && (shards.size() > 0)) {
exclusiveStartShardId = shards.get(shards.size() - 1).getShardId();
}
else {
exclusiveStartShardId = null;
}
} while (exclusiveStartShardId != null);
this.streamMap.put(streamName, desc);
}
return desc;
}
开发者ID:qubole,项目名称:presto-kinesis,代码行数:45,代码来源:KinesisSplitManager.java
示例7: getIterator
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的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();
}
开发者ID:qubole,项目名称:presto-kinesis,代码行数:37,代码来源:KinesisRecordSet.java
示例8: describeStream
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Get metainfo for a Kinesis stream, which contains information about which shards this Kinesis stream possess.
*
* <p>This method is using a "full jitter" approach described in AWS's article,
* <a href="https://www.awsarchitectureblog.com/2015/03/backoff.html">"Exponential Backoff and Jitter"</a>.
* This is necessary because concurrent calls will be made by all parallel subtask's fetcher. This
* jitter backoff approach will help distribute calls across the fetchers over time.
*
* @param streamName the stream to describe
* @param startShardId which shard to start with for this describe operation (earlier shard's infos will not appear in result)
* @return the result of the describe stream operation
*/
private DescribeStreamResult describeStream(String streamName, @Nullable String startShardId) throws InterruptedException {
final DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName(streamName);
describeStreamRequest.setExclusiveStartShardId(startShardId);
DescribeStreamResult describeStreamResult = null;
// Call DescribeStream, with full-jitter backoff (if we get LimitExceededException).
int attemptCount = 0;
while (describeStreamResult == null) { // retry until we get a result
try {
describeStreamResult = kinesisClient.describeStream(describeStreamRequest);
} catch (LimitExceededException le) {
long backoffMillis = fullJitterBackoff(
describeStreamBaseBackoffMillis, describeStreamMaxBackoffMillis, describeStreamExpConstant, attemptCount++);
LOG.warn("Got LimitExceededException when describing stream " + streamName + ". Backing off for "
+ backoffMillis + " millis.");
Thread.sleep(backoffMillis);
} catch (ResourceNotFoundException re) {
throw new RuntimeException("Error while getting stream details", re);
}
}
String streamStatus = describeStreamResult.getStreamDescription().getStreamStatus();
if (!(streamStatus.equals(StreamStatus.ACTIVE.toString()) || streamStatus.equals(StreamStatus.UPDATING.toString()))) {
if (LOG.isWarnEnabled()) {
LOG.warn("The status of stream " + streamName + " is " + streamStatus + "; result of the current " +
"describeStream operation will not contain any shard information.");
}
}
// Kinesalite (mock implementation of Kinesis) does not correctly exclude shards before the exclusive
// start shard id in the returned shards list; check if we need to remove these erroneously returned shards
if (startShardId != null) {
List<Shard> shards = describeStreamResult.getStreamDescription().getShards();
Iterator<Shard> shardItr = shards.iterator();
while (shardItr.hasNext()) {
if (StreamShardHandle.compareShardIds(shardItr.next().getShardId(), startShardId) <= 0) {
shardItr.remove();
}
}
}
return describeStreamResult;
}
开发者ID:axbaretto,项目名称:flink,代码行数:58,代码来源:KinesisProxy.java
示例9: describeStream
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Get metainfo for a Kinesis stream, which contains information about which shards this Kinesis stream possess.
*
* This method is using a "full jitter" approach described in AWS's article,
* <a href="https://www.awsarchitectureblog.com/2015/03/backoff.html">"Exponential Backoff and Jitter"</a>.
* This is necessary because concurrent calls will be made by all parallel subtask's fetcher. This
* jitter backoff approach will help distribute calls across the fetchers over time.
*
* @param streamName the stream to describe
* @param startShardId which shard to start with for this describe operation (earlier shard's infos will not appear in result)
* @return the result of the describe stream operation
*/
private DescribeStreamResult describeStream(String streamName, @Nullable String startShardId) throws InterruptedException {
final DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName(streamName);
describeStreamRequest.setExclusiveStartShardId(startShardId);
DescribeStreamResult describeStreamResult = null;
// Call DescribeStream, with full-jitter backoff (if we get LimitExceededException).
int attemptCount = 0;
while (describeStreamResult == null) { // retry until we get a result
try {
describeStreamResult = kinesisClient.describeStream(describeStreamRequest);
} catch (LimitExceededException le) {
long backoffMillis = fullJitterBackoff(
describeStreamBaseBackoffMillis, describeStreamMaxBackoffMillis, describeStreamExpConstant, attemptCount++);
LOG.warn("Got LimitExceededException when describing stream " + streamName + ". Backing off for "
+ backoffMillis + " millis.");
Thread.sleep(backoffMillis);
} catch (ResourceNotFoundException re) {
throw new RuntimeException("Error while getting stream details", re);
}
}
String streamStatus = describeStreamResult.getStreamDescription().getStreamStatus();
if (!(streamStatus.equals(StreamStatus.ACTIVE.toString()) || streamStatus.equals(StreamStatus.UPDATING.toString()))) {
if (LOG.isWarnEnabled()) {
LOG.warn("The status of stream " + streamName + " is " + streamStatus + "; result of the current " +
"describeStream operation will not contain any shard information.");
}
}
// Kinesalite (mock implementation of Kinesis) does not correctly exclude shards before the exclusive
// start shard id in the returned shards list; check if we need to remove these erroneously returned shards
if (startShardId != null) {
List<Shard> shards = describeStreamResult.getStreamDescription().getShards();
Iterator<Shard> shardItr = shards.iterator();
while (shardItr.hasNext()) {
if (KinesisStreamShard.compareShardIds(shardItr.next().getShardId(), startShardId) <= 0) {
shardItr.remove();
}
}
}
return describeStreamResult;
}
开发者ID:axbaretto,项目名称:flink,代码行数:58,代码来源:KinesisProxy.java
示例10: getKinesisRecords
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Retrieves the next batch of records from Kinesis using the shard iterator.
*
* Most of the time this results in one getRecords call. However we allow for
* a call to return an empty list, and we'll try again if we are far enough
* away from the latest record.
*/
private void getKinesisRecords()
throws ResourceNotFoundException
{
// Normally this loop will execute once, but we have to allow for the odd Kinesis
// behavior, per the docs:
// A single call to getRecords might return an empty record list, even when the shard contains
// more records at later sequence numbers
boolean fetchedRecords = false;
int attempts = 0;
while (!fetchedRecords && attempts < fetchAttempts) {
long now = System.currentTimeMillis();
if (now - lastReadTime <= sleepTime) {
try {
Thread.sleep(now - lastReadTime);
}
catch (InterruptedException e) {
log.error("Sleep interrupted.", e);
}
}
getRecordsRequest = new GetRecordsRequest();
getRecordsRequest.setShardIterator(shardIterator);
getRecordsRequest.setLimit(batchSize);
getRecordsResult = clientManager.getClient().getRecords(getRecordsRequest);
lastReadTime = System.currentTimeMillis();
shardIterator = getRecordsResult.getNextShardIterator();
kinesisRecords = getRecordsResult.getRecords();
if (kinesisConnectorConfig.isLogBatches()) {
log.info("Fetched %d records from Kinesis. MillisBehindLatest=%d", kinesisRecords.size(), getRecordsResult.getMillisBehindLatest());
}
fetchedRecords = (kinesisRecords.size() > 0 || getMillisBehindLatest() <= MILLIS_BEHIND_LIMIT);
attempts++;
}
listIterator = kinesisRecords.iterator();
batchesRead++;
messagesRead += kinesisRecords.size();
}
开发者ID:qubole,项目名称:presto-kinesis,代码行数:48,代码来源:KinesisRecordSet.java
示例11: activateOptions
import com.amazonaws.services.kinesis.model.ResourceNotFoundException; //导入依赖的package包/类
/**
* Configures this appender instance and makes it ready for use by the
* consumers. It validates mandatory parameters and confirms if the configured
* stream is ready for publishing data yet.
*
* Error details are made available through the fallback handler for this
* appender
*
* @throws IllegalStateException
* if we encounter issues configuring this appender instance
*/
@Override
public void activateOptions() {
if (streamName == null) {
initializationFailed = true;
error("Invalid configuration - streamName cannot be null for appender: " + name);
}
if (layout == null) {
initializationFailed = true;
error("Invalid configuration - No layout for appender: " + name);
}
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration = setProxySettingsFromSystemProperties(clientConfiguration);
clientConfiguration.setMaxErrorRetry(maxRetries);
clientConfiguration.setRetryPolicy(new RetryPolicy(PredefinedRetryPolicies.DEFAULT_RETRY_CONDITION,
PredefinedRetryPolicies.DEFAULT_BACKOFF_STRATEGY, maxRetries, true));
clientConfiguration.setUserAgent(AppenderConstants.USER_AGENT_STRING);
BlockingQueue<Runnable> taskBuffer = new LinkedBlockingDeque<Runnable>(bufferSize);
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(threadCount, threadCount,
AppenderConstants.DEFAULT_THREAD_KEEP_ALIVE_SEC, TimeUnit.SECONDS, taskBuffer, new BlockFastProducerPolicy());
threadPoolExecutor.prestartAllCoreThreads();
kinesisClient = new AmazonKinesisAsyncClient(new CustomCredentialsProviderChain(), clientConfiguration,
threadPoolExecutor);
boolean regionProvided = !Validator.isBlank(region);
if (!regionProvided) {
region = AppenderConstants.DEFAULT_REGION;
}
if (!Validator.isBlank(endpoint)) {
if (regionProvided) {
LOGGER
.warn("Received configuration for both region as well as Amazon Kinesis endpoint. ("
+ endpoint
+ ") will be used as endpoint instead of default endpoint for region ("
+ region + ")");
}
kinesisClient.setEndpoint(endpoint,
AppenderConstants.DEFAULT_SERVICE_NAME, region);
} else {
kinesisClient.setRegion(Region.getRegion(Regions.fromName(region)));
}
DescribeStreamResult describeResult = null;
try {
describeResult = kinesisClient.describeStream(streamName);
String streamStatus = describeResult.getStreamDescription().getStreamStatus();
if (!StreamStatus.ACTIVE.name().equals(streamStatus) && !StreamStatus.UPDATING.name().equals(streamStatus)) {
initializationFailed = true;
error("Stream " + streamName + " is not ready (in active/updating status) for appender: " + name);
}
} catch (ResourceNotFoundException rnfe) {
initializationFailed = true;
error("Stream " + streamName + " doesn't exist for appender: " + name, rnfe);
}
asyncCallHander = new AsyncPutCallStatsReporter(name);
}
开发者ID:awslabs,项目名称:kinesis-log4j-appender,代码行数:72,代码来源:KinesisAppender.java
注:本文中的com.amazonaws.services.kinesis.model.ResourceNotFoundException类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论