使用 AKKA 实现仿真应用程序

Implementing Simulation application using AKKA

我正在使用 akka actors 来实现一个模拟应用程序,其中包含中央控制器(由 Actor1 的实例表示)、一组实体(由 Actor2 的实例表示)相互协商并与周围环境协商以做出决策然后是行为,以及由一组方形区域组成的模拟环境(由一组 Actor3 实例表示)。

我对如何在控制器、模拟实体和环境方块之间实现消息传递技术感到困惑。我正在研究 Akka 中的 RoutingEventBus 实用程序。我对哪个适合我的场景感到困惑。你有什么想法吗?

该应用程序的第一个版本是 运行ning 在一台机器上,但稍后,我将 运行 它分发可能是通过使用 Docker 例如!

RoutingEventBus的主要区别在于Actor故障监控的责任方。控制器 Actor1 是否应该监控各种 Actor2 和 Actor3 实例的生命周期(例如包含处理 Actor 死亡的逻辑)?

如果答案是肯定的,那么 Actor1 应该使用它的上下文来生成 Actor2 和 Actor3 children 并使用路由发送 children 消息。

另一方面,如果 Controller 不负责 children,则应在 Actor1 之外创建 Actor2 和 Actor3 实例,并且 Actor1 应使用 EventBus 向它们发送消息。

根据您的评论“...但稍后,我将运行分发...”我建议不要让控制器负责 Actor2 & Actor3 生命周期和使用 EventBus。