[Akka] 1.액터 모델
Akka 프레임워크에 대해 학습하기 전 Akka에서 채용하고 있는 액터 모델에 대해 알아보자.
액터 모델이란?
Concurrent(병행성) 을 구현하기 위해 Thread를 사용할 경우 주의하지 않으면 여러가지 문제점이 생길 수 있다. 액터 모델은 이러한 문제를 해결하기 위한 모델이다.
“모든 것은 액터다 (Everything is an actor)” 라는 기본 철학을 가지고 객체 지향의 순차적으로 실행되는 점과 다르게 액터 모델은 본질적으로 동시성을 제공하며, 액터는 다음과 같은 특징을 가진다.
- 다른 액터에게 유한한 메시지를 보낼 수 있음
- 유한한 개수의 새로운 액터를 만들 수 있음
- 수신한 메시지에 맞는 행동을 지정할 수 있음
액터간에 메시지를 주고받아 다른 액터와 상호작용을 하고, 액터가 차지하는 메모리 공간은 독립적이기 때문에, 다른 스레드나 액터가 접근할 수 없습니다.
Akka
스칼라로 구현된 병행 제어를 위해 액터 모델을 도입한 프레임워크로 자바와 스칼라로 작성이 가능함.
akka는 경량 스레드를 사용하여 최대 초당 5천만 메시지 처리가 가능하고, 메모리 1GB당 250만개의 액터생성이 가능함.
조만간 검증 한다..