public class StreamsDeterministicShuffleShardSyncLeaderDecider
extends java.lang.Object
implements com.amazonaws.services.kinesis.clientlibrary.lib.worker.LeaderDecider
LeaderDecider to elect leader(s) based on workerId.
Leases are shuffled using a predetermined constant seed so that lease ordering is
preserved across workers.
This reduces the probability of choosing the leader workers co-located on the same
host in case workerId starts with a common string (e.g. IP Address).
Hence if a host has 3 workers, IPADDRESS_Worker1, IPADDRESS_Worker2, and IPADDRESS_Worker3,
we don't end up choosing all 3 for shard sync as a result of natural ordering of Strings.
This ensures redundancy for shard-sync during host failures.| Constructor and Description |
|---|
StreamsDeterministicShuffleShardSyncLeaderDecider(com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration config,
com.amazonaws.services.kinesis.leases.interfaces.ILeaseManager<com.amazonaws.services.kinesis.leases.impl.KinesisClientLease> leaseManager,
int numPeriodicShardSyncWorkers)
Create an instance overriding the default periodic shard sync worker count.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.Boolean |
isLeader(java.lang.String workerId) |
void |
shutdown() |
public StreamsDeterministicShuffleShardSyncLeaderDecider(com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration config,
com.amazonaws.services.kinesis.leases.interfaces.ILeaseManager<com.amazonaws.services.kinesis.leases.impl.KinesisClientLease> leaseManager,
int numPeriodicShardSyncWorkers)
config - KinesisClientLibConfiguration instanceleaseManager - LeaseManager instance.numPeriodicShardSyncWorkers - Max number of periodic shard sync workers.public java.lang.Boolean isLeader(java.lang.String workerId)
isLeader in interface com.amazonaws.services.kinesis.clientlibrary.lib.worker.LeaderDeciderpublic void shutdown()
shutdown in interface com.amazonaws.services.kinesis.clientlibrary.lib.worker.LeaderDecider