Чтобы запустить сервер с Аккой-HTTP, один примерно делает это:Akka-Http: что можно использовать между клиентом и сервером?
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
Http().bindAndHandle(routes, webHost, webPort)
и использовать клиент запроса на уровень:
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
val responseFuture: Future[HttpResponse] =
Http().singleRequest(HttpRequest(uri = "http://akka.io"))
Из 3 общих ресурсов, а именно - ActorSystem
, ActorMaterializer
и HttpExt
- какие из них можно безопасно совместно использовать как сервером, так и клиентом в одном приложении?
Согласен, что в большинстве приложений вы можете (и должны) относиться к 'ActorSystem' как Singleton. «HttpExt» напрямую связан с «ActorSystem», его не требуется отслеживать отдельно. Обычно для большинства приложений достаточно одного «материализатора» (но вы можете создавать дополнительные, если требуется разделение или несколько конфигураций). – jrudolph