Class DistributedIdGenerator

java.lang.Object
org.apache.pulsar.broker.service.DistributedIdGenerator

public class DistributedIdGenerator extends Object
Generate unique ids across multiple nodes.

Each node has an instance of this class and uses the same z-node. At startup each node gets assigned a unique id, using ZK sequential nodes.

After that, each node can just use a local counter and combine, the application prefix, its own instance id and with the counter incremental value to obtain a globally unique id.

  • Constructor Details

    • DistributedIdGenerator

      public DistributedIdGenerator(org.apache.pulsar.metadata.api.coordination.CoordinationService cs, String path, String prefix) throws Exception
      Parameters:
      cs - CoordinationService
      path - path of the z-node used to track the generators ids
      prefix - prefix to prepend to the generated id. Having a unique prefix can make the id globally unique
      Throws:
      Exception
  • Method Details

    • getNextId

      public String getNextId()