2017-02-08 2 views
0

Чтобы запустить сервер с Аккой-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 - какие из них можно безопасно совместно использовать как сервером, так и клиентом в одном приложении?

ответ

2

Все они могут быть безопасно разделены и предназначены для использования таким образом. Единственное предостережение в том, что если вам нужны разные характеристики потоковой передачи для вашего клиента и сервера, для этого потребуются разные актерские системы.

+0

Согласен, что в большинстве приложений вы можете (и должны) относиться к 'ActorSystem' как Singleton. «HttpExt» напрямую связан с «ActorSystem», его не требуется отслеживать отдельно. Обычно для большинства приложений достаточно одного «материализатора» (но вы можете создавать дополнительные, если требуется разделение или несколько конфигураций). – jrudolph

0

В приведенном выше примере адрес uri akka.io является адресом клиента или сервером.

Смежные вопросы