Page History
Info |
---|
가장 기본적인 Actor의 설계방법을 살펴보겠습니다. Actor에대한 이론적인 설명은 앞장에서 했기때문에 생략하겠습니다. Actor에 대한 사용패턴/컨셉은 언어/플래폼이 틀려도 큰 차이가 없습니다. |
주요 액터 모듈
import akka.actor.
...
ActorSystem
No Format |
---|
ActorSystem system = ActorSystem.create("helloakka"); |
어플리케이션 하나당, 일반적으로 액터 시스템도 하나이며
액터생성과 제어에 관련한 여러가지 함수를 제공합니다.
import akka.actor.AbstractActor
...
Code Block | ||||
---|---|---|---|---|
| ||||
public class MyActor extends AbstractActor {
private final LoggingAdapter log = Logging.getLogger(getContext().getSystem(), this);
@Override
public Receive createReceive() {
return receiveBuilder()
.match(String.class, s -> {
log.info("Received String message: {}", s);
})
.matchAny(o -> log.info("received unknown message"))
.build();
}
} |
액터를 설계할때 기본적으로 상속받는 준비된 추상 액터 입니다.
import akka.actor.Props
...
Code Block | ||||
---|---|---|---|---|
| ||||
Props props1 = Props.create(MyActor.class); Props props2 = Props.create(ActorWithArgs.class, () -> new ActorWithArgs("arg")); // careful, see below Props props3 = Props.create(ActorWithArgs.class, "arg"); |
액터 생성옵션에 대한 정보를 보관할수가 있으며 ,옵션 재사용가능하며
액터 초기화에 필요한 여러가지 초기옵션들을 관리할수가 있습니다.
import akka.actor.
...
ActorRef
...
Code Block | ||||
---|---|---|---|---|
| ||||
ActorRef howdyGreeter = system.actorOf( props1 , "howdyGreeter");
howdyGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender()); |
액터의 참조자이며, 참조된 액터에게 메시지를 보내고자할때 이용됩니다.
액터는 기본적으로, 공유가 금지되었기때문에 상대 멤버접근이 불가능하며
모든것은 메시지를 통해 정보를 교환해야합니다.