2016-09-14 1 views
0

저는 Akka의 작동 방식과 Actor Model 사용에 대한 모범 사례를 파악하려고합니다.Akka Actor 수를 정의하는 가장 좋은 방법은 무엇입니까

동일한 내용에 대해 몇 가지 질문이 있습니다.

질문 :

  1. 무엇 아래에 언급 된 시나리오에 배우와 스레드의 총 수를 구성 할 때 우리가 명심해야 할 결정하는 요인은?

    시나리오 :

    a. 이 배우 (불 및 잊어)에서 호출됩니다.

    b. 을 요청합니다 (Futures and Promise).

  2. 수동 액터 작성과 비교하여 예를 들어 RoundRobinRouter (X)와 같은 라우터를 사용할 때의 장점/단점은 무엇입니까?

  3. 메시지 처리를 위해 메일 박스, 액터 및 스레드를 디스패처가 조율하는 방법.

답변

1

선물과 약속은 액터와 라우터와 독립적으로 사용할 수 있습니다. 또한 알빈 알렉산더 (Alvin Alexander) 링크는 Futures/Promises와 Threads (Java에서와 동일 함)를 비교하는 훌륭한 작업입니다.

사용할 라우팅 유형은 특정 응용 프로그램 필요에 따라 다릅니다. 일반적으로 해결하려는 실제 문제를 반영하는 라우팅 기법을 선택해야합니다. 예 : 그것은 마치 우편함이나 버스/방송 또는 라운드 로빈과 같습니다.

Akka가 제공하는 기본 제공 라우터를 사용하지 않으면 고유 한 라우터를 작성해야 할 수 있습니다. 그러나 Akka 라이브러리를 개선하는 것이 어려울 수 있습니다. 아래의 akka.io 문서에서 라우터의 일부가 라이브러리에 의해 액터에게 위임되어 라우터가 단일 프로세서로 작동한다는 사실을 설명합니다. 스레드.

몇 기가 바이트의 RAM이있는 경우 일반적인 컴퓨터로 수천 개의 스레드 또는 액터를 실행할 수 있습니다. 그러나 어느 순간에 실제로 실행중인 스레드 수는 CPU에있는 코어 수보다 많지 않습니다. 여기

당신이 사용할 기술을 결정하는 데 도움이 및 수있는 몇 가지 기사를 많은 스레드와 배우 적절한 방법 :

http://doc.akka.io/docs/akka/2.4.10/scala/routing.html

Akka messaging mechanisms by example

How many actors can be launched in scala?

http://alvinalexander.com/scala/differences-java-thread-vs-scala-future

How many threads can ran on a CPU at a time