@ThreadSafe
public interface MachineIdDistributor
| Modifier and Type | Field and Description |
|---|---|
static java.time.Duration |
FOREVER_SAFE_GUARD_DURATION |
| Modifier and Type | Method and Description |
|---|---|
MachineState |
distribute(java.lang.String namespace,
int machineBit,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
distribute machine id.
|
static long |
getSafeGuardAt(java.time.Duration safeGuardDuration,
boolean stable) |
void |
guard(java.lang.String namespace,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
Guard the machine id by heartbeat.
|
static int |
maxMachineId(int machineBit) |
void |
revert(java.lang.String namespace,
InstanceId instanceId)
revert machine id.
|
static int |
totalMachineIds(int machineBit) |
static final java.time.Duration FOREVER_SAFE_GUARD_DURATION
static int maxMachineId(int machineBit)
static int totalMachineIds(int machineBit)
static long getSafeGuardAt(java.time.Duration safeGuardDuration,
boolean stable)
MachineState distribute(java.lang.String namespace, int machineBit, InstanceId instanceId, java.time.Duration safeGuardDuration) throws MachineIdOverflowException
namespace - namespacemachineBit - machineBitinstanceId - instanceIdsafeGuardDuration - safe Guard DurationMachineIdOverflowException - This exception is thrown when the machine number allocation exceeds the thresholdvoid revert(java.lang.String namespace,
InstanceId instanceId)
throws NotFoundMachineStateException
namespace - namespaceinstanceId - instanceIdNotFoundMachineStateExceptionvoid guard(java.lang.String namespace,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
throws NotFoundMachineStateException,
MachineIdLostException

namespace - namespaceinstanceId - instanceIdsafeGuardDuration - safe Guard DurationNotFoundMachineStateExceptionMachineIdLostException