public struct IdStruct
{
public uint Time; // 30bit
public int Process; // 18bit
public ushort Value; // 16bit
public struct InstanceIdStruct
{
public uint Time; // 当年开始的tick 28bit
public int Process; // 18bit
public uint Value; // 18bit
public struct UnitIdStruct
{
public uint Time; // 30bit 34年
public ushort Zone; // 10bit 1024个区
public byte ProcessMode; // 8bit Process % 256 一个区最多256个进程
public ushort Value; // 16bit 每秒每个进程最大16K个Unit
看了下,3个id,似乎大同小异
除了UnitIdStruct里多了个Zone,Zone和ProcessMode极限情况下可能不够
是不是可以统一只保留IdStruct就行了,zone额外用个变量来记录,不受限制。
这样pross有 26w多个肯定够了。
感觉id只是单纯的雪花id,不包含额外逻辑,才最通用。InstanceId通讯正好用到了pross就算了。
把zone加进去是不是不太好,zone可以加,其他是不是还可以加点别的进来,又导致位数不够