From f49100f1a000a836d25b4fe18b20f5acaf26fcc8 Mon Sep 17 00:00:00 2001 From: zhouzj Date: Fri, 12 Mar 2021 00:24:55 +0800 Subject: [PATCH] editreadme --- README.md | 17 +++++++++++++++++ src/Yitter.IdGenerator/IdGeneratorOptions.cs | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9db3b2a..ac05333 100644 --- a/README.md +++ b/README.md @@ -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 是雪花漂移算法。 diff --git a/src/Yitter.IdGenerator/IdGeneratorOptions.cs b/src/Yitter.IdGenerator/IdGeneratorOptions.cs index 1d28e34..2a04512 100644 --- a/src/Yitter.IdGenerator/IdGeneratorOptions.cs +++ b/src/Yitter.IdGenerator/IdGeneratorOptions.cs @@ -17,7 +17,7 @@ namespace Yitter.IdGenerator { /// /// 雪花计算方法 - /// (1|2) + /// (1-漂移算法|2-传统算法),默认1 /// public short Method { get; set; } = 1;