Akka는 Play에서 어떻게 사용 되나요?
Akka를 기반으로 구축 된 Play는 확장 성이 뛰어난 애플리케이션을 위해 예측 가능하고 최소한의 리소스 소비 (CPU, 메모리, 스레드)를 제공합니다.
Play에서 Akka가 사용되는 방법과 위치, Akka를 기반으로 Play를 빌드 한 결과는 무엇인지 정확히 알고 싶습니다.
에서 재생 2.0 , 배우 통과하는 모든 요청을 위임 플레이. Akka의 향후 API 및 기타 부분에 크게 의존했습니다.
에서 재생 2.1 스칼라 2.10에 Akka의 미래 API의 이동과 함께, 재생 Akka에 덜 직접 따라하기 시작했다. Akka에서 모든 실행 컨텍스트를 가져와 Akka와의 통합을 제공하지만 그 정도는 그 정도입니다.
Play 2.3 에서는 특히 WebSockets와 관련된 Akka 통합을 지원하는 새로운 기능을 추가하고 있습니다.
에서 재생 2.4 , 재생은 새로운 akka-HTTP를 (이전 스프레이라고도 함), 당신이 얻을 수있는 점에서, 플레이 Akka에 건설 될 예정으로 포팅 될 것입니다.
결과는 무엇입니까? Akka는 동시성을 쉽게 처리 할 수있는 프로그래밍 패러다임을 제공합니다. 또한 분산 프로그래밍을위한 훌륭한 추상화를 제공합니다. 분산 프로그래밍에서 가장 어려운 점은 (항상 발생하는) 오류를 적절하게 처리하는 것입니다. 대부분의 도구는 실패를 숨기려고 시도하지만, 안타깝게도 무언가를 숨기는 것은 사라지지 않으며 실제로는 특정 유형의 실패를 처리하려고 할 때 문제가 숨겨져 있다는 사실 때문에 실제로 일을 더 어렵게 만듭니다. 당신의 길을 방해합니다. Akka는 당신의 얼굴에 실패를 밀어 붙이기 때문에 당신이 코딩 할 때 당신의 애플리케이션이 실패에 어떻게 반응 할 것인지에 대해 생각해야합니다. 따라서 애플리케이션이 실패를 허용하는 방식으로 애플리케이션을 설계 / 코딩해야합니다.
그렇다면 이것이 Play에 어떻게 도움이 될까요? 더 좋은 질문은 Play 사용자에게 어떻게 도움이 되나요? Akka는 Play 자체를 구현하는 데 도움이되지만 Akka없이 구현할 수 있습니다 (사실 Netty는 현재 대부분의 무거운 작업을 수행하며 Play 2.4에서 변경 될 것입니다). 중요한 점은 Play가 Akka와 원활하게 통합되어 액터와 함께 HTTP 요청을 처리하고 실패를 처리하는 등의 작업을 쉽게 수행 할 수 있다는 것입니다. 이는 확장 가능하고 탄력적 인 방식으로 애플리케이션을 설계 할 수 있기 때문에 Play 사용자에게 도움이됩니다.
업데이트 : 위의 내용은 3 년 전에 작성되었으며 그 이후로 많은 것이 변경되었습니다. Play 2.4는 akka-http에 대한 실험적인 지원을 제공했지만 Play는 여전히 기본적으로 Netty를 사용합니다.
Play 2.5 에서는 iteratees API를 더 이상 사용하지 않고 Akka 스트림으로 전환했습니다. 이것은 이제 모든 비동기 IO가 Akka 스트림을 통과하고 있음을 의미합니다. 곧 (Play 2.6 이상인지 확실하지 않음) Play는 akka-http를 서버의 기본 지원 구현으로 만들기 위해 스위치를 튕 깁니다 (아직 WS 클라이언트는 아님).
업데이트 2 : Play 2.6은 이제 akka-http를 HTTP 서버의 기본 백엔드 구현으로 만듭니다 (Netty는 여전히 옵션으로 사용 가능).
참조 URL : https://stackoverflow.com/questions/22718905/how-is-akka-used-in-play
'IT story' 카테고리의 다른 글
Maven 저장소, pom.xml 또는 settings.xml을 지정하는 가장 좋은 장소는 어디입니까? (0) | 2020.12.31 |
---|---|
Azure의 정적 콘텐츠 (svg, woff, ttf)에 대한 404 (0) | 2020.12.30 |
JDBC 소스를 사용하여 (Py) Spark에서 데이터를 쓰고 읽는 방법은 무엇입니까? (0) | 2020.12.30 |
LINQ : 점 표기법과 쿼리 식 (0) | 2020.12.30 |
Model View Presenter 란 무엇입니까? (0) | 2020.12.30 |