2017-03-01 5 views
0

私はakkaを学習していますが、ルータとアクタの違いを見つけることができません。ルータは、送信者と受信者の間のパスを再定義するために使用され、アクタは専用の作業を行います。構造的に(俳優の要素に関して)両方の違いがあるかどうかを教えてください。ルータとアクタの違い

答えて

1

Akka Routersの主な目的は、メッセージを並行して実行するメカニズムを提供することです。メッセージは、ルータを経由して送信することができ、効率的にルートそのroutees(専用の作業にサービスを提供するもの)別名先の役者にそれらを。したがって、パスの再定義だけではありません。それは(あなたもstandalone routerを定義することができます)ルータ俳優になると内部構造の面では

は、メッセージ配信が最適化されています

  • メッセージは、ルータの俳優のメールボックスにエンキューされていない
  • メッセージはもう一つの重要な違いは、ルータの俳優が、元SEを変更せずにそのrouteesにメッセージを転送しているという事実であるroutee

に直接送信されますnder。したがって、あなたが書くとき:

class TaskEngine extends Actor { 
    val routeePaths: List[String] = ... 
    val router: ActorRef = system.actorOf(RoundRobinGroup(paths).props(), "coffee-house-group") 

    def receive = { 
    case msg => router ! msg 
    } 
} 

は、通常の俳優では次のようになります。

class BasicActor(workerActor: ActorRef) extends Actor { 

    def receive = { 
    case msg => workerActor forward msg 
    } 
} 

これはあなたの質問に対する回答です。

+0

答えてくれてありがとうございますが、私は初心者としてakkaをどこで学ぶことができるか教えてください – Partish

関連する問題