Akka 喷雾的多调度器

Akka 喷雾的多调度器,akka,spray,executioncontext,Akka,Spray,Executioncontext,我想知道如何处理这个具体案件 我想为web应用程序提供两个ClientService。clientService是指调用外部rest服务的客户端API。所以我们在这里 问题是,这两种服务中的一种可能非常密集和耗时,但调用频率低于另一种,后者会更快,但调用频率非常高 我在考虑为两个客户服务安排两名调度员。假设我们有查询API(ClientService1)和分类API(ClientService2) 两种服务确实应基于相同的参与者系统。换句话说,我希望在我的actor系统中有两个调度器,然后通过客

我想知道如何处理这个具体案件

我想为web应用程序提供两个ClientService。clientService是指调用外部rest服务的客户端API。所以我们在这里

问题是,这两种服务中的一种可能非常密集和耗时,但调用频率低于另一种,后者会更快,但调用频率非常高

我在考虑为两个客户服务安排两名调度员。假设我们有查询API(ClientService1)和分类API(ClientService2)

两种服务确实应基于相同的参与者系统。换句话说,我希望在我的actor系统中有两个调度器,然后通过客户端级api(例如管道)将它们传递给spray

  • 它是否可行、可扩展和适当
  • 您会建议使用一个调度程序,但使用更大的线程池吗
  • 另外,我如何获得调度员
  • 我应该自己创建一个threapool执行器,然后让调度员出来吗 什么
  • 如何让actor系统加载/创建多个dispatcher,以及 如何检索它们以便将它们传递给管道方法
  • 我知道如何用一个特定的调度器创建一个参与者,有这样的例子,但这是一个不同的场景。顺便说一下,我不希望有低于客户端级别的API

    编辑1

    我发现system.dispatchers.lookup方法可以创建一个。这样就可以了

    然而,不清楚的是与AKK.IO/SPRAY.IO有关

    1-管理器IO(HTTP):我不清楚它在哪个调度器上运行,或者是否可以配置它

    2-此外,假设我将不同的执行上下文传递给管道方法。会发生什么?我仍然会让IO(HTTP)在默认执行上下文上运行,还是在它自己的上下文上运行(我不知道它是如何在内部运行的)?另外,在我传递的执行上下文上究竟将运行什么?(换句话说,哪些演员)

    如果有人能帮我澄清一下,那就太好了

    最好的


    M

    回答2:在此执行上下文中不会运行任何参与者,它仅用于在
    sendReceive
    中完成的所有后续处理,即,只有参与者在这一行中问:谢谢,收到了!!!我想问题在于理解spay是非阻塞的。因此,没有必要这样做。等待响应时,喷洒不会堵塞。我的意思是,最终会涉及到JavaNIO线程,但这会平摊所有事情。多亏了多路复用,如果我理解得好的话。