现况
现阶段前端项目基于分层设计来架构。
比如MVC, MVVM, MVP, Model as Service
。
而业务的发展,导致随时随地的需求变更和报错。
基于分层设计的前端,难以拥抱变化。
新的项目架构,需要高容错性和强可扩展性,以及大并发性。
业内已有解决方案,即Akka架构。
Akka架构的Actor模型
一个Actor是一个容器,它包括了状态,行为,一个消息队列,子Actor和一个错误处理策略。
状态,即有限状态机。
行为,处理消息,获取状态运算结果,传递给下一次处理。
消息队列,对大量并发的消息进行排队处理,先进先出或先进后出。
子Actor,消息来,创建子Actor处理任务,并把自身的上下文传递到子Actor。
错误处理策略,当子Actor报错,就让子Actor崩溃,并把错误信息上传到监管者Actor。
网状结构思考
一个应用由网状节点Actor组成。
一个节点广播消息,各个节点收到消息,处理消息,广播消息。
以此不停运转。
因为网状,网状包含树状。
树状有了上下级,网状有了平级。
这个结构设计,导致广播消息时有了选择。
比如网状传播,仅上级传播,仅下级传播,还是指定节点传播。
设计应用,转换成设计消息广播的路径约束。
参考:
https://www.cnblogs.com/yfceshi/p/7137864.html
https://github.com/akka-js/akka.js_bindings
https://github.com/untu/comedy
https://nact.io