AKKA의 구성요소들은 대부분 설정화를 통해 기능방식 변경이 가능하며
설정내용을 파악하는것만으로 어떠한 기능을 제공하는지 파악도 가능합니다.
소스코드를 통해 런타임설정도 가능하지만, application.conf 와같이 외부로 설정파일을 분리하는것이 권장됩니다.
기본 akka 설정
akka { loggers = ["akka.event.Logging$DefaultLogger"] loglevel = "INFO" stdout-loglevel = "ERROR" } 또는 akka.logger=["akka.event.Logging$DefaultLogger"]
akka 구성요소의 하위 설정은 akka{...} 내부에 포함되는 방식으로 탑다운방식으로
설정을 추가하는 방식입니다.
- 관련구현Link: Spring Boot With AKKA
특정 액터 라우터 방식 설정
actor.deployment { /workers/router1 { router = round-robin-pool nr-of-instances = 5 } /workers/router2 { router = random-pool nr-of-instances = 5 } }
특정 주소를 가진 액터의 라우터 방식을 설정가능하며
위 예는 특정 주소를 가진 액터에 라운드로빈과,랜덤풀이 지정된 한가지 예입니다.
- 관련구현Link : 05.RouterActor
원격전송을 위한 RemoteActor 설정
actor { provider = "akka.remote.RemoteActorRefProvider" enable-additional-serialization-bindings = on } remote { transport = "akka.remote.netty.NettyRemoteTransport" netty.tcp { ip:1.1.1.1 port:10000 } }
RemoteActor는 네트워크 전송이 필요함으로 몇가지 통신및 직렬화에대한 설정을 할수가 있습니다.
Presistence 저장소 설정
extensions = [akka.persistence.Persistence] persistence { journal { plugin = "akka.persistence.journal.inmem" auto-start-journals = ["akka.persistence.journal.inmem"] } snapshot-store { plugin = "akka.persistence.snapshot-store.local" auto-start-snapshot-stores = ["akka.persistence.snapshot-store.local"] } }
액터는 상태를 가질수 있으며, 그 상태를 지속하기위한 몇가지 저장소를 지원합니다.
- 관련Link:Persitence