2014-10-15 3 views
0

내 응용 프로그램은 대용량 클라이언트 (사용자 시스템에 설치된 Java 에이전트)와 양방향 연속 통신이 필요하며 spring mvc webapp 이 에이전트를 관리하기위한 표준 jsp UI를 제공합니다. 저는 Java akka (이 프로젝트에서 스칼라를 배울 시간 없음)의 기초만을 살펴 봤습니다. 그러나 많은 양의 클라이언트 에이전트를 처리하는 것이 좋은 선택 인 것 같습니다. 나는 akka 스프링 통합 모듈과 akka-spring-java 예제를 살펴 보았다. 그리고 스프링 측에서 akka를 사용하는 것은 꽤나 간단하다.Akka 피어 투 피어 (원격) 대 클라이언트 서버 (웹 소켓)

클라이언트 에이전트 측면에서 akka remoting을 사용하면 다른 응용 프로그램에 임베드 될 가능성이있는 에이전트가 기본적으로 스레드가 사용자의 jvm에서 다양한 프로세스를 감시하고 서버의 서비스와 통신해야한다고 생각하는 것이 좋습니다. 위치 투명성을 사용하면 개념적으로 아키텍처가 단순화되고 더 효율적일 수 있습니다.

이 문서에서는이 올바른 접근 방식

Peer-to-Peer vs. Client-Server

akka 스프링 통합 모듈과 관련있는 것처럼 보이는 낙타 WebSocket을를 사용하는 것이 원격을 사용하는 대안을하지 않을 수 있습니다 제안합니다.

기술 스택을 감안할 때 내 앱의 컨텍스트에서 취할 수있는 최선의 방향은 무엇입니까?

답변

0

아마도 서버 - 클라이언트 상황에서 remoting을 사용하고 싶지 않을 것입니다. Remoting은 양측에게 동일한 권리와 특권을 부여합니다. 그것은 클러스터와 피어 - 투 - 피어를 위해 설계되었습니다.

Akka I/O을 살펴보십시오. 비동기 액터를 양측에서 제공하지만 서버 - 클라이언트 유스 케이스에 적합합니다. 스레드와 프로세스에 대해 걱정할 필요가 없습니다.

또한 Akka를 Java와 함께 사용하는 경우에도 Scala 라이브러리가 종속성으로 필요합니다.