AKKA의 구성요소들은 대부분 설정화를 통해 기능방식 변경이 가능하며

설정내용을 파악하는것만으로 어떠한 기능을 제공하는지 파악도 가능합니다.

소스코드를 통해 런타임설정도 가능하지만, application.conf 와같이 외부로 설정파일을 분리하는것이 권장됩니다.



기본 akka 설정

akka {
	loggers = ["akka.event.Logging$DefaultLogger"]
	loglevel = "INFO"
	stdout-loglevel = "ERROR"
}


또는


akka.logger=["akka.event.Logging$DefaultLogger"]

akka 구성요소의 하위 설정은 akka{...} 내부에 포함되는 방식으로 탑다운방식으로

설정을 추가하는 방식입니다.

특정 액터 라우터 방식 설정

   actor.deployment {
		/workers/router1 {
			router = round-robin-pool
			nr-of-instances = 5
		}
		/workers/router2 {
			router = random-pool
			nr-of-instances = 5
		}
	}



특정 주소를 가진 액터의 라우터 방식을 설정가능하며

위 예는 특정 주소를 가진 액터에 라운드로빈과,랜덤풀이 지정된 한가지 예입니다.

원격전송을 위한 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"]
	    }	
	  }

액터는 상태를 가질수 있으며, 그 상태를 지속하기위한 몇가지 저장소를 지원합니다.








  • No labels