Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 스레드풀을 분리해라 : 응답이 오래걸리는것과 아닌것을 분리함으로, 오래걸리는것을 별도로 스레드수를 확보할수가 있다.
  • 순차처리보다 병렬처리를 활용 : 한가지의 요청이 끝나기전 다른 요청이 진행될수 없는경우와 동시에 요청을한후 머징처리되는게 효율적인경우를 분리 
  • 최종전략 : 순차적으로 처리해야할것과 병렬적으로 처리해야할것이 썩일수 있으며 튜닝은 이것을 고려해야한다.

스레드 스케줄러에 따른 전략

  • thread-pool-executor : 각 Task의 완료시간이 비슷할시 유용하다, 빠른 Task가 모두 완료될시 놀고있는 스레드가 생길수가 있다.
  • fork-join-executor : 각 Task의 완료시간이 차이가 있을시 유용하다, 놀고 있는 스레드의 자원 가져다가 활용할수있다. 일반적으로 유용하다.

이쯤되면 AKKA는 자바가가진 스레드 스케쥴러를 정확하게 이해하고

이것을 추상화하여 액터 고성능 메시지 처리에서 스레드를 직접 작성할필요가 없으나

자바가가진 스레드 모델이 가진 스케쥴러를 이해할 필요가 있습니다.

어떠한 기능을 추상화한다란것은 전통적인 개발방식의 메카니즘을 잘 이해하고 있다란의미입니다.


Dispatcher Option

  • parallelism-min =2 : 동시에 활성화되는 최소 스레드수 (available processors * factor)
  • parallelism-max = 8 : 동시에 활성화되는 최대 스레드수
  • parallelism-factor =2.0 : Core개수대비 최대가 될수있는 스레드수
  • throughput =100 : 동시에 처리하는 메시지수
  • fixed-pool-size =32 : 스레드 개수 고정

...

일반적으로 심플하게 사용되는 방식입니다.동시 요청이 10개가 왔다고하면, 스레드 두개만 활용하여 분배되어 처리되게 됩니다.


자바가가진 스레드풀의 개념과, 이를 더 추상화해주는 dispatcher에 대한 더 자세한것은

아래 URL을 통해 한번더 학습하는것을 권장합니다.