Class IpBasedAssigner
java.lang.Object
cloud.opencode.base.id.snowflake.IpBasedAssigner
- All Implemented Interfaces:
WorkerIdAssigner
IP-based Worker ID Assigner
基于IP的工作节点ID分配器
Assigns worker ID based on the last two octets of the host IP address. DatacenterId uses the third octet. This is suitable for most cloud environments.
基于主机IP地址的后两个字节分配工作节点ID。数据中心ID使用第三个字节。 这适用于大多数云环境。
Algorithm | 算法:
- WorkerId = (IP[2] * 256 + IP[3]) % 32
- DatacenterId = IP[2] % 32
Usage Examples | 使用示例:
WorkerIdAssigner assigner = IpBasedAssigner.create();
long workerId = assigner.assignWorkerId();
long datacenterId = assigner.assignDatacenterId();
Features | 主要功能:
- Assigns worker ID based on local IP address - 基于本地IP地址分配工作ID
- Deterministic assignment for consistent node identification - 确定性分配以实现一致的节点标识
Security | 安全性:
- Thread-safe: No - 线程安全: 否
- Null-safe: No - 空值安全: 否
- 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 IpBasedAssignercreate()Creates an IP-based assigner 创建基于IP的分配器Gets a description of the assignment strategy 获取分配策略描述
-
Method Details
-
create
Creates an IP-based assigner 创建基于IP的分配器- 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 | 策略描述
-