1
0
mirror of synced 2025-12-16 01:58:09 +08:00

editreadme

This commit is contained in:
zhouzj
2021-03-12 00:24:55 +08:00
parent 23d4e00215
commit f49100f1a0
2 changed files with 18 additions and 1 deletions

View File

@@ -101,8 +101,25 @@
4.以上所有工作节点,均拥有 50W/0.1s 最大处理速度。
## ★★集成建议★★
1.用单例模式调用。外部集成方使用更多的实例并行调用本算法不会增加ID产出效能因为本算法采用单线程模式生成ID。
2.指定唯一的 WorkerId。必须由外部系统确保 WorkerId 的全局唯一性,并赋值给本算法入口方法。
3.异常处理。本算法内部会抛出所有Exception当本算法内部问题时外部系统最好Log相关信息并做好应对处理免得外部系统崩溃。
4.同步或同步调用。你可以在外部系统的异步async标记方法中同步调用本算法。
5.订阅ID异步通知。IIdGenerator.GenIdActionAsync 是一个可以向外部系统异步发送ID生成消息的是事件它包含的消息类型有漂移开始、漂移结束、时间回拨
,具体参考 Yitter.IdGenTest 的 Program.cs 启动代码。订阅ID异步通知会有细微的性能损失。
6.使用雪花漂移算法。虽然代码里包含了传统雪花算法的定义并且你可以在入口处指定Method=2来启用传统算法但我还是建议你使用雪花漂移算法Method=1默认的毕竟它具有更好的伸缩力和更高的性能。
7.认真理解 IdGeneratorOptions 的定义。这对你更好的集成和使用本算法有很大的帮助。
8.轻易不要修改核心算法。本算法内部参数较多,逻辑较为复杂,在你尚未掌握核心逻辑时,请勿尝试修改核心代码并用于生产环境。
## 代码示例
#### 运行环境
1..NET Standard 2.0+
#### 文件说明
1.SnowWorkerM1.cs 是雪花漂移算法。

View File

@@ -17,7 +17,7 @@ namespace Yitter.IdGenerator
{
/// <summary>
/// 雪花计算方法
/// 1|2
/// 1-漂移算法|2-传统算法默认1
/// </summary>
public short Method { get; set; } = 1;