我想使用Akka FSM将一些演员转换为有限状态机。目前,系统的设计方式是每个演员都知道如何处理其操作的结果以及下一个要处理的演员。
现在,我想要一些专门的演员,他们只做他们应该知道的事情(而不知道整个消息路由),以及中央FSM,它知道如何路由消息和处理转换流程。
客户端向FSM演员发送请求,FSM演员在转换到下一个状态时,向onTransition块中的某个演员发送消息。该演员用某些消息回复发件人,在FSM状态内进行处理,直到请求完成。
到目前为止,一切看起来都很好,但是我不确定如果多个客户端开始与FSM演员交互会发生什么。 "工作流"是否会被记录在某个地方,以便来自不同客户端的流程不会在某个点上相互冲突(例如,FSM演员接收到来自另一个客户端而不是原始客户端的消息)?
使用10个FSM演员和轮询路由器安全吗,还是需要在每个客户端请求时创建新的FSM演员,然后在完成后将其关闭?