2017-01-12 1 views
0

저는 Play 프레임 워크와 Akka 툴킷을 처음 사용합니다.Play Async 대 Akka 액터

우리는 Play를 사용하여 웹 클라이언트와 마이크로 서비스간에 오케스트레이션 계층을 구축하려고합니다.
기본적으로 클라이언트의 모든 요청에 ​​대해 Play는 WS 호출을 수행하고 JSON을 반환하고 캐시해야합니다.

이제 WS 호출을 할 때 Play Async API를 사용하거나 Akka 액터를 사용할 수 있습니다. 이러한 옵션 중 하나가 다른 옵션보다 중요합니까?

Play 비동기 API를 직접 사용하는 것과 비교하여 Play와 함께 Akka 액터를 사용해야하는 경우에 대한 권장 사항이 있습니까?

+0

Play 비동기 API 란 무엇입니까? 웹 참조 번호를 입력하십시오. Play에는 다양한 비동기 솔루션이 사용됩니다. –

+0

https://www.playframework.com/documentation/2.5.x/JavaAsync "Java 8은 CompletionStage라는 일반적인 약속 API를 제공합니다. CompletionStage 은 결국 Result 유형의 값으로 사용됩니다. CompletionStage 대신에 정상적인 결과, 우리는 아무것도 막지 않고 신속하게 행동에서 복귀 할 수 있습니다. 약속은 회수되고 즉시 결과를 제공합니다. 응답을 기다리는 동안 웹 클라이언트가 차단되지만 아무것도 차단되지 않습니다. 서버 리소스를 사용하여 다른 클라이언트를 서비스 할 수 있습니다. " –

답변

0

Akka에서는 액터의 주요 개념으로 상태를 유지할 메모리가있는 객체입니다. 해당 상태에 대한 순차적 조작은 시스템에 의해 직렬화되며 간섭을 일으킬 수 없습니다. Java8 promise/futures에서 주요 개념은 비동기 메소드 호출이며 다른 메소드가 동일한 객체에 속하면 시리얼 액세스를 제공하는 것은 사용자의 책임입니다. 이는 쉽지 않으며 오류가 발생할 수 있습니다. 그런 다음 future를 사용하면 각 개별 작업에 대해 Future 개체를 만드는 것이 포함되며, 작업이 세분화되어 있으면 오버 헤드로 간주 될 수 있습니다. 한편, CompletableFuture에는 여러 이벤트를 allOf()과 같은 하나로 결합하는 방법이 있습니다.이 방법은 Akka에서 직접적인 유사점이 없습니다.

관련 문제