Versions Compared

Key

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

...

이와같은 처리방식은 동일한 컨셉으로 로컬뿐아니라 리모트처리,분산처리등으로 확장이 될수가있다.


메시지  메시지 전송에의해서만, 처리가 되기때문에 확장및 동시성처리에 유연해지며 블락이 되지 않습니다동시성에대한 처리를하기때문에 네트워크로의 확장에 유연합니다.

Actor2는 MessageA 처리중, MessageB요청을 받게되며 처리후 다음 메시지를 처리합니다.

블락킹 쓰레드 모델과 다른점은 Actor3는 MessageB를 요청하고 대기상태에 빠질필요가 없다는 것입니다없고

Actor2의 내부에서는 Lock자체가 필요가 없게됩니다.


 위 그림을 보면, 이러한 의문을 가질수 있습니다.  액터하나당? Thread를 하나사용하는것인가?

...

멀티스레드 측정을 위해 Tace하거나 중단을 통해 작동의 연관성을 찾는것은 어렵기때문에, 스레드 프로파일러 시각화 툴의 도움을 받습니다.

만약 위 스레드를 자신이 작성하고, 내부적으로 제한 처리를 하고 메시지큐를 처리 한다고 하면 그러한 코드로 인해 서비스 코드의 복잡성이 증가할것입니다위와같은 스레드모델를  직접 작성하게될시 서비스코드의 복잡도증가및 숙련도에따라 서비스의 불안정으로 이어질수 있습니다.


AKKA에서는 단지 튜닝을 위한 목적으로 ThreadView를 활용합니다.  스레드사용에대한 전략을 설정화로 이루어냅니다.


목적과 성능에따라 액터를 관리할 dispatcher를 분리하게되면 Actor의 성능에 대한 문제 파악이 용이해집니다.

...