public interface ZkSubscriptionClient
| Modifier and Type | Method and Description |
|---|---|
boolean |
createSubscription()
Creates subscription node in zookeeper on path /nakadi/subscriptions/{subscriptionId}
|
void |
fillEmptySubscription(java.util.Map<Partition.PartitionKey,java.lang.Long> partitions)
Fills subscription object using partitions information provided (mapping from (topic, partition) to real offset
(NOT "BEGIN").
|
long |
getOffset(Partition.PartitionKey key)
Returns current offset value for specified partition key.
|
void |
incrementTopology()
Increments value in /nakadi/subscriptions/{subscriptionId}/topology_version
|
boolean |
isSubscriptionCreated()
Checks if path /nakadi/subscriptions/{subscriptionId} exists in zookeeper
|
Partition[] |
listPartitions()
List partitions
|
Session[] |
listSessions()
Returns session list in zk related to this subscription.
|
void |
registerSession(Session session)
Registers client connection using session id in /nakadi/subscriptions/{subscriptionId}/sessions/{session.id} and value {{session.weight}}
|
void |
runLocked(java.lang.Runnable function)
Makes runLocked on subscription, using zk path /nakadi/locks/subscription_{subscriptionId}
Lock is created as an ephemeral node, so it will be deleted if nakadi go down.
|
ZKSubscription |
subscribeForOffsetChanges(Partition.PartitionKey key,
java.lang.Runnable commitListener) |
ZKSubscription |
subscribeForSessionListChanges(java.lang.Runnable listener)
Subscribes to changes of session list in /nakadi/subscriptions/{subscriptionId}/sessions.
|
ZKSubscription |
subscribeForTopologyChanges(java.lang.Runnable listener)
Subscribe for topology changes.
|
void |
transfer(java.lang.String sessionId,
java.util.Collection<Partition.PartitionKey> partitions)
Transfers partitions to next client using data in zk.
|
void |
unregisterSession(Session session) |
void |
updatePartitionConfiguration(Partition partition)
Updates specified partition in zk.
|
void runLocked(java.lang.Runnable function)
function - Function to call in context of runLocked.boolean isSubscriptionCreated()
throws java.lang.Exception
java.lang.Exception - if zk is in incorrect stateboolean createSubscription()
fillEmptySubscription(Map)} call it will have value INITIALIZED. So true
will be returned in case of state is equal to CREATED.void fillEmptySubscription(java.util.Map<Partition.PartitionKey,java.lang.Long> partitions)
partitions - Data to use for subscription filling.void updatePartitionConfiguration(Partition partition)
partition - Partition to updatevoid incrementTopology()
Session[] listSessions()
Partition[] listPartitions()
ZKSubscription subscribeForSessionListChanges(java.lang.Runnable listener)
listener} subscription.listener - method to call on any change of client list.ZKSubscription subscribeForTopologyChanges(java.lang.Runnable listener)
listener - called whenever /nakadi/subscriptions/{subscriptionId}/topology node is changed.ZKSubscription subscribeForOffsetChanges(Partition.PartitionKey key, java.lang.Runnable commitListener)
long getOffset(Partition.PartitionKey key)
key - Key to get offset forvoid registerSession(Session session)
session - Session to register.void unregisterSession(Session session)
void transfer(java.lang.String sessionId,
java.util.Collection<Partition.PartitionKey> partitions)
sessionId - Someone who actually tries to transfer data.partitions - topic ids and partition ids of transferred data.