我正在设计一个项目,它将同时激活和控制许多异步参与者。
我想问一下,我应该使用哪种方法来获得更高的稳定性和可扩展性?
无状态还是有状态?
据我所知,它看起来像:
一个。有状态的
Actor _act = new Actor (long key);
_act.DoSomething (object _what);
湾。无状态
Actor _act = new Actor (long key);
_act = _act.DoSomething(object _what);
据我所知,第二种方法很昂贵 - 内存保留等。但是这种第二种方法允许不要担心状态和锁。
dotnet 哪种方式更可取?要达到的参与者目标数量约为 100k,一个节点每秒执行 2.5-3 mils 操作。
PS 每个参与者都有其有限状态机来计算。
对于有状态的,它由定期异步委托调用
对于无状态,它要求每个操作都考虑到时间维度。