Package org.zalando.fahrschein
Class SimplePartitionManager
- java.lang.Object
-
- org.zalando.fahrschein.SimplePartitionManager
-
- All Implemented Interfaces:
PartitionManager
public abstract class SimplePartitionManager extends Object implements PartitionManager
-
-
Constructor Summary
Constructors Constructor Description SimplePartitionManager()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract booleanacquireLock(String eventName, String lockedBy)Optional<Lock>lockPartitions(String eventName, List<Partition> partitions, String lockedBy)Locks partitions for one event.protected abstract voidreleaseLock(String eventName, String lockedBy)voidunlockPartitions(Lock lock)Unlocks previously locked partitions.
-
-
-
Method Detail
-
lockPartitions
public Optional<Lock> lockPartitions(String eventName, List<Partition> partitions, String lockedBy)
Description copied from interface:PartitionManagerLocks partitions for one event. When running consumers on multiple nodes they should try to lock partitions so that events are only processed by one consumer.- Specified by:
lockPartitionsin interfacePartitionManager- Parameters:
eventName- Name of the eventpartitions- The partitions to locklockedBy- Name of one node of the consuming application- Returns:
- A
Lockinstance containing the list of locked partitions if locking succeeded,Optional.empty()otherwise
-
unlockPartitions
public void unlockPartitions(Lock lock)
Description copied from interface:PartitionManagerUnlocks previously locked partitions.- Specified by:
unlockPartitionsin interfacePartitionManager- Parameters:
lock- The lock object returned fromPartitionManager.lockPartitions(String, List, String)
-
-