Versions Compared

Key

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

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

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

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



기본 akka 설정

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


또는


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

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

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

특정 액터 라우터 방식 설정

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



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

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

원격전송을 위한 RemoteActor 설정

Code Block
languagejava
themeEmacs
 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 저장소 설정

Code Block
languagejava
themeEmacs
    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"]
	    }	
	  }

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