我们正在Akka中设计系统,其部分工作是使用来自共享池的有限数量的连接来执行操作。创建一个连接管理器actor是合理的,它将根据需要实例化子actor,将其数量限制为连接池的大小。但是,应该为每个单独的操作创建子操作员,并在他们完成工作后停止操作,或者他们应该遵循各自的连接,即在没有请求的情况下,在应用程序的生命周期内保持空闲状态。
我的第一个想法是,只要创建演员很便宜(并且它是),如果每个演员维护逻辑只分配一个作业并且一旦完成就终止,那么它将更容易。但是,如果没有可用的空闲参与者且请求必须排队,则这会对未决请求的管理造成复杂化。在替代方法(长期生活的儿童演员)中,我不喜欢的是,如果演员死于非空邮箱,则存在丢失待处理请求的风险。