Scala Akka FSM参与者和循环路由

Scala Akka FSM参与者和循环路由,scala,akka,fsm,Scala,Akka,Fsm,我想使用Akka FSM将一些演员集转换为FSM。目前,系统的设计方式是,每个参与者都知道如何处理其操作的结果,以及哪个参与者是处理序列中的下一个参与者 现在我想要一些专门的参与者,他们只做他们应该知道的事情(现在知道整个消息路由),还有中央FSM,他们知道如何路由消息和处理转换流 客户端向FSM参与者发送一些请求,FSM参与者在转换到下一个状态时向onTransition块中的某个参与者发送消息。该参与者用一些消息回复发送者,这些消息在FSM状态内以某种方式处理,直到请求完成 到目前为止,一

我想使用Akka FSM将一些演员集转换为FSM。目前,系统的设计方式是,每个参与者都知道如何处理其操作的结果,以及哪个参与者是处理序列中的下一个参与者

现在我想要一些专门的参与者,他们只做他们应该知道的事情(现在知道整个消息路由),还有中央FSM,他们知道如何路由消息和处理转换流

客户端向FSM参与者发送一些请求,FSM参与者在转换到下一个状态时向onTransition块中的某个参与者发送消息。该参与者用一些消息回复发送者,这些消息在FSM状态内以某种方式处理,直到请求完成

到目前为止,一切看起来都很好,但我不确定如果多个客户端开始与FSM actor交互会发生什么。“工作流”是否会被记录在某个地方,以便来自不同客户端的流在某个点不会发生冲突(例如,FSM actor从另一个客户端接收消息,而不是从源客户端接收消息)


有10个FSM参与者和循环路由器是安全的吗?或者我需要根据客户端的每个请求创建新的FSM参与者,然后在完成后将其杀死?

每个Akka FSM参与者一次只有一个状态,因此在这种情况下,不能将多个FSM参与者与循环路由器一起使用。您可以考虑在客户端的每一个请求上创建新的FSM参与者。还有其他选择(一个共享的多用户非Akka FSM和一个可能“忙碌”的FSM参与者池),但由于Akka参与者重量轻,创建每个用户FSM应该是更好的解决方案