【问题标题】:Can we avoid creating of internal actor when doing ask re做询问时我们可以避免创建内部演员吗
【发布时间】:2023-12-27 07:30:01
【问题描述】:

Akka 文档说hereask 操作涉及创建一个内部 actor 来处理这个回复,它需要有一个超时时间,之后它会被销毁,以免泄漏资源

有什么办法可以阻止这种内部演员的创建?

【问题讨论】:

    标签: akka akka.net akka-cluster akka-remote-actor akka-remoting


    【解决方案1】:

    如果你还想ask,那么无论如何都会创建那个内部actor,没有办法避免。

    如果您出于某种原因想要避免使用内部参与者,则必须使用 tell 而不是 ask

    【讨论】:

    • 但在某些情况下,系统希望对流管道中的每个事件进行同步通信,请求将是一项繁重的操作,因为它包括内部参与者的创建和终止。
    • @Prog_G 你能帮忙详细说明一下这个场景吗?流式管道的作用是什么,为什么要进行同步通信?
    【解决方案2】:

    没有办法避免这种情况:ask() 会导致在 /temp/ 命名空间中创建一个actor。

    以上几点说明:

    Actor 创建非常轻量级。创建一个演员几乎没有开销。 在流中执行 ask() 是完全有效的。只是不要阻止。

    【讨论】: