Как работает спрей-рассылка spray.routing.HttpService?

Отказ от ответственности: у меня пока нет опыта работы с scala, поэтому мой вопрос связан с очень основами.

Рассмотрим следующий пример (он может быть неполным):

import akka.actor.{ActorSystem, Props}
import akka.io.IO
import spray.can.Http
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.duration._
import akka.actor.Actor
import spray.routing._
import spray.http._

object Boot extends App {
  implicit val system = ActorSystem("my-actor-system")
  val service = system.actorOf(Props[MyActor], "my")
  implicit val timeout = Timeout(5.seconds)
  IO(Http) ? Http.Bind(service, interface = "localhost", port = 8080)
}

class MyActor extends Actor with MyService {
  def actorRefFactory = context

  def receive = runRoute(myRoute)
}

trait MyService extends HttpService {
  val myRoute =
    path("my") {
      post {
        complete {
          "PONG"
        }
      }
    }
}

Мой вопрос: что на самом деле происходит, когда контроль достигаетcomplete блок? Вопрос кажется слишком общим, поэтому позвольте мне его разделить.

Я вижу создание одного актера в примере. Означает ли это, что приложение является однопоточным и использует только одно ядро ​​процессора?Что произойдет, если я сделаю блокировку вызова внутриcomplete?Если р. 1 верно и р. 2 будет блокировать, как я могу отправлять запросы на использование всех процессоров? Я вижу два пути: актер за запрос и актер за соединение. Второй кажется разумным, но я не могу найти способ сделать это с помощью библиотеки спреев.Если предыдущий вопрос не имеет значения, будетdetach директива делать? А как насчет передачи функции, возвращающей Futurecomplete Директива? В чем разница между отсоединением и передачей функции, возвращающей будущее?Как правильно настроить количество рабочих потоков и балансировать запросы / соединения?

Было бы здорово, если бы вы указали мне объяснения в официальной документации. Это очень обширно, и я считаю, что я что-то упустил.

Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос