public class RecordProcessorCheckpointer extends Object implements IRecordProcessorCheckpointer
| Constructor and Description |
|---|
RecordProcessorCheckpointer(ShardInfo shardInfo,
ICheckpoint checkpoint,
SequenceNumberValidator validator,
IMetricsFactory metricsFactory)
Only has package level access, since only the Amazon Kinesis Client Library should be creating these.
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkpoint()
This method will checkpoint the progress at the last data record that was delivered to the record processor.
|
void |
checkpoint(com.amazonaws.services.kinesis.model.Record record)
This method will checkpoint the progress at the provided record.
|
void |
checkpoint(String sequenceNumber)
This method will checkpoint the progress at the provided sequenceNumber.
|
void |
checkpoint(String sequenceNumber,
long subSequenceNumber)
This method will checkpoint the progress at the provided sequenceNumber and subSequenceNumber, the latter for
aggregated records produced with the Producer Library.
|
ExtendedSequenceNumber |
getLargestPermittedCheckpointValue()
Used for testing.
|
ExtendedSequenceNumber |
getLastCheckpointValue() |
IPreparedCheckpointer |
prepareCheckpoint()
This method will record a pending checkpoint at the last data record that was delivered to the record processor.
|
IPreparedCheckpointer |
prepareCheckpoint(com.amazonaws.services.kinesis.model.Record record)
This method will record a pending checkpoint at the at the provided record.
|
IPreparedCheckpointer |
prepareCheckpoint(String sequenceNumber)
This method will record a pending checkpoint at the provided sequenceNumber.
|
IPreparedCheckpointer |
prepareCheckpoint(String sequenceNumber,
long subSequenceNumber)
This method will record a pending checkpoint at the provided sequenceNumber and subSequenceNumber, the latter for
aggregated records produced with the Producer Library.
|
void |
setLargestPermittedCheckpointValue(ExtendedSequenceNumber largestPermittedCheckpointValue) |
void |
setSequenceNumberAtShardEnd(ExtendedSequenceNumber extendedSequenceNumber)
Used to remember the last extended sequence number before SHARD_END to allow us to prevent the checkpointer
from checkpointing at the end of the shard twice (i.e.
|
public RecordProcessorCheckpointer(ShardInfo shardInfo, ICheckpoint checkpoint, SequenceNumberValidator validator, IMetricsFactory metricsFactory)
checkpoint - Used to checkpoint progress of a RecordProcessorvalidator - Used for validating sequence numberspublic void checkpoint()
throws KinesisClientLibDependencyException,
InvalidStateException,
ThrottlingException,
ShutdownException
checkpoint in interface IRecordProcessorCheckpointerKinesisClientLibDependencyException - Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException - Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.public void checkpoint(com.amazonaws.services.kinesis.model.Record record)
throws KinesisClientLibDependencyException,
InvalidStateException,
ThrottlingException,
ShutdownException,
IllegalArgumentException
IRecordProcessorCheckpointer.checkpoint() but provides the ability to specify the record at which to
checkpoint.checkpoint in interface IRecordProcessorCheckpointerrecord - A record at which to checkpoint in this shard. Upon failover,
the Kinesis Client Library will start fetching records after this record's sequence number.KinesisClientLibDependencyException - Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException - Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.IllegalArgumentExceptionpublic void checkpoint(String sequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
IRecordProcessorCheckpointer.checkpoint() but provides the ability to specify the sequence number at which to
checkpoint.checkpoint in interface IRecordProcessorCheckpointersequenceNumber - A sequence number at which to checkpoint in this shard. Upon failover,
the Kinesis Client Library will start fetching records after this sequence number.KinesisClientLibDependencyException - Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException - Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.IllegalArgumentException - The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public void checkpoint(String sequenceNumber, long subSequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
IRecordProcessorCheckpointer.checkpoint()
but provides the ability to specify the sequence and subsequence numbers at which to checkpoint.checkpoint in interface IRecordProcessorCheckpointersequenceNumber - A sequence number at which to checkpoint in this shard. Upon failover, the Kinesis
Client Library will start fetching records after the given sequence and subsequence numbers.subSequenceNumber - A subsequence number at which to checkpoint within this shard. Upon failover, the
Kinesis Client Library will start fetching records after the given sequence and subsequence numbers.KinesisClientLibDependencyException - Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException - Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.IllegalArgumentException - The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public IPreparedCheckpointer prepareCheckpoint() throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
prepareCheckpoint in interface IRecordProcessorCheckpointerKinesisClientLibDependencyException - Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException - Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.public IPreparedCheckpointer prepareCheckpoint(com.amazonaws.services.kinesis.model.Record record) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
IRecordProcessorCheckpointer.prepareCheckpoint() but provides the ability to specify the record at which to prepare the checkpoint.prepareCheckpoint in interface IRecordProcessorCheckpointerrecord - A record at which to prepare checkpoint in this shard.
Application should use this to assist with idempotency across failover by calling prepareCheckpoint before having
side effects, then by calling checkpoint on the returned PreparedCheckpointer after side effects are complete.
Use the sequence number and application state passed in to init() to behave idempotently.KinesisClientLibDependencyException - Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException - Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.public IPreparedCheckpointer prepareCheckpoint(String sequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
IRecordProcessorCheckpointer.prepareCheckpoint() but provides the ability to specify the sequence number at which to checkpoint.prepareCheckpoint in interface IRecordProcessorCheckpointersequenceNumber - A sequence number at which to prepare checkpoint in this shard.KinesisClientLibDependencyException - Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException - Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.public IPreparedCheckpointer prepareCheckpoint(String sequenceNumber, long subSequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
IRecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the sequence number at which to checkpointprepareCheckpoint in interface IRecordProcessorCheckpointersequenceNumber - A sequence number at which to prepare checkpoint in this shard.subSequenceNumber - A subsequence number at which to prepare checkpoint within this shard.KinesisClientLibDependencyException - Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException - Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException - Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException - The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this RecordProcessor instance.public ExtendedSequenceNumber getLastCheckpointValue()
public ExtendedSequenceNumber getLargestPermittedCheckpointValue()
public void setLargestPermittedCheckpointValue(ExtendedSequenceNumber largestPermittedCheckpointValue)
largestPermittedCheckpointValue - the largest permitted checkpointpublic void setSequenceNumberAtShardEnd(ExtendedSequenceNumber extendedSequenceNumber)
extendedSequenceNumber - Copyright © 2023. All rights reserved.