Class MacBasedAssigner
java.lang.Object
cloud.opencode.base.id.snowflake.MacBasedAssigner
- All Implemented Interfaces:
WorkerIdAssigner
MAC Address-based Worker ID Assigner
基于MAC地址的工作节点ID分配器
Assigns worker ID and datacenter ID based on the host's MAC address. Provides better uniqueness across hosts compared to IP-based assignment.
基于主机的MAC地址分配工作节点ID和数据中心ID。 与基于IP的分配相比,能提供更好的跨主机唯一性。
Algorithm | 算法:
- WorkerId = (MAC[4] * 256 + MAC[5]) % 32
- DatacenterId = (MAC[2] * 256 + MAC[3]) % 32
Usage Examples | 使用示例:
WorkerIdAssigner assigner = MacBasedAssigner.create();
long workerId = assigner.assignWorkerId();
long datacenterId = assigner.assignDatacenterId();
Features | 主要功能:
- Assigns worker ID based on MAC address - 基于MAC地址分配工作ID
- Hardware-based unique node identification - 基于硬件的唯一节点标识
Security | 安全性:
- Thread-safe: No - 线程安全: 否
- Null-safe: Yes (validates inputs) - 空值安全: 是(验证输入)
- Since:
- JDK 25, opencode-base-id V1.1.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionlongAssigns a datacenter ID 分配数据中心IDlongAssigns a worker ID 分配工作节点IDstatic MacBasedAssignercreate()Creates a MAC-based assigner 创建基于MAC地址的分配器Gets a description of the assignment strategy 获取分配策略描述
-
Method Details
-
create
Creates a MAC-based assigner 创建基于MAC地址的分配器- Returns:
- assigner | 分配器
-
assignWorkerId
public long assignWorkerId()Description copied from interface:WorkerIdAssignerAssigns a worker ID 分配工作节点ID- Specified by:
assignWorkerIdin interfaceWorkerIdAssigner- Returns:
- worker ID within valid range | 有效范围内的工作节点ID
-
assignDatacenterId
public long assignDatacenterId()Description copied from interface:WorkerIdAssignerAssigns a datacenter ID 分配数据中心ID- Specified by:
assignDatacenterIdin interfaceWorkerIdAssigner- Returns:
- datacenter ID within valid range | 有效范围内的数据中心ID
-
getStrategyName
Description copied from interface:WorkerIdAssignerGets a description of the assignment strategy 获取分配策略描述- Specified by:
getStrategyNamein interfaceWorkerIdAssigner- Returns:
- strategy description | 策略描述
-