나는 (MongoDB의에) 데이터베이스 쿼리의 수를하고 다음 해당 데이터베이스 쿼리에 의해 반환 된 기록에 대한 처리의 적지 않은 금액을 수행하는 웹 서비스가 있습니다. 각 웹 요청은 이러한 요청 중 약 15-45 개를 실행해야하며 이는 각 쿼리 + 처리가 약 20ms가 걸릴 때 허용 할 수없는 페이지 응답 시간을 초래합니다. 캐쉬 미스 비율이 높고 데이터를 가능한 한 최신 상태로 유지해야하므로 캐싱이 작동하지 않습니다.스칼라/자바에서 웹 요청 내의 병렬 처리/스레드?
내가 실행하고 쿼리를 처리하는 클래스를 병렬화 스칼라 + Akka 배우를 사용하여 계획했다하지만 난 서블릿 컨테이너 내부 스레드를 생성 알고는 좋습니다. 스칼라에서 웹 요청 내에서 스레딩/병렬화를 수행하는 권장 방법은 무엇입니까? 이를 위해 Akka의 선물을 사용할 수없는 이유
나는 당신의 질문에 대답하고 있지 않다. Akka Actors를 사용하는 것이 좋은 아이디어는 아닐 것이라고 말하고 싶습니다. Akka Futures는 여기 갈 길입니다. –
@Derek 제 생각에는 Scala + Akka의 웹 요청 안에서 액터를 코드에 사용해도됩니까? 나는 하나 이상의 스레드를 갖고, 쿼리를 수행하는 클래스를 래핑하고 액터에서 처리하려고합니다. 나는 선물을 고려하고 있지만 배우도 사용할 수 있는지 알고 싶었습니다. –
저는 Business Logic과 Web Container 사이에 Actor Shim을 배치하는 Akka의 HTTP 애드온 인 Mist를 사용하여 매우 안정적이고 확장 가능한 응용 프로그램을 성공적으로 작성했습니다. 그래서 나는 그것에 어떤 문제가 있는지 왜 보지 못합니다. –