public abstract class AbstractMachineIdDistributor extends java.lang.Object implements MachineIdDistributor
| Modifier and Type | Field and Description |
|---|---|
static int |
NOT_FOUND_LAST_STAMP |
FOREVER_SAFE_GUARD_DURATION| Constructor and Description |
|---|
AbstractMachineIdDistributor(MachineStateStorage machineStateStorage,
ClockBackwardsSynchronizer clockBackwardsSynchronizer) |
| Modifier and Type | Method and Description |
|---|---|
MachineState |
distribute(java.lang.String namespace,
int machineBit,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
1.
|
protected abstract MachineState |
distributeRemote(java.lang.String namespace,
int machineBit,
InstanceId instanceId,
java.time.Duration safeGuardDuration) |
void |
guard(java.lang.String namespace,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
Guard the machine id by heartbeat.
|
protected abstract void |
guardRemote(java.lang.String namespace,
InstanceId instanceId,
MachineState machineState,
java.time.Duration safeGuardDuration) |
void |
revert(java.lang.String namespace,
InstanceId instanceId)
1.
|
protected abstract void |
revertRemote(java.lang.String namespace,
InstanceId instanceId,
MachineState machineState) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSafeGuardAt, maxMachineId, totalMachineIdspublic static final int NOT_FOUND_LAST_STAMP
public AbstractMachineIdDistributor(MachineStateStorage machineStateStorage, ClockBackwardsSynchronizer clockBackwardsSynchronizer)
public MachineState distribute(java.lang.String namespace, int machineBit, InstanceId instanceId, java.time.Duration safeGuardDuration) throws MachineIdOverflowException
MachineStateStorage
2. when not found: distributeRemote(java.lang.String, int, me.ahoo.cosid.machine.InstanceId, java.time.Duration)
3. set MachineState to MachineStateStoragedistribute in interface MachineIdDistributornamespace - namespacemachineBit - machineBitinstanceId - instanceIdsafeGuardDuration - safe Guard DurationMachineIdOverflowException - This exception is thrown when the machine number allocation exceeds the thresholdprotected abstract MachineState distributeRemote(java.lang.String namespace, int machineBit, InstanceId instanceId, java.time.Duration safeGuardDuration)
public void revert(java.lang.String namespace,
InstanceId instanceId)
MachineStateStorage
2. when not found: distributeRemote(java.lang.String, int, me.ahoo.cosid.machine.InstanceId, java.time.Duration) , no need to revert
3. revertrevert in interface MachineIdDistributornamespace - namespaceinstanceId - instanceIdprotected abstract void revertRemote(java.lang.String namespace,
InstanceId instanceId,
MachineState machineState)
public void guard(java.lang.String namespace,
InstanceId instanceId,
java.time.Duration safeGuardDuration)
throws NotFoundMachineStateException,
MachineIdLostException
MachineIdDistributor
guard in interface MachineIdDistributornamespace - namespaceinstanceId - instanceIdsafeGuardDuration - safe Guard DurationNotFoundMachineStateExceptionMachineIdLostExceptionprotected abstract void guardRemote(java.lang.String namespace,
InstanceId instanceId,
MachineState machineState,
java.time.Duration safeGuardDuration)