2017-01-06 3 views
3

私はAkkaクラスタを構築しており、Akka-HTTPサーバーをAPIサーバーとして使用したいと考えています。誰がそれをどうやって行うのですか?Akkaクラスター内でAkka-HTTPサーバーを実行する方法は?

私はそれがクラスタへのアクセスポイントであるため、クラスタシングルトンになると思いますが、アクターにすることは奇妙に思えます。何もしないreceive()メソッドが必要です推測)。

+0

は、あなたがこの問題を解決することができましたか? – twoface88

答えて

-2

最も単純な例:

implicit val system = ... // your ActorSystem goes here 
implicit val materializer = ActorMaterializer() 
implicit val executionContext = system.dispatcher 

val route = 
    path("hello") { 
    get { 
     complete(HttpEntity(ContentTypes.`text/plain(UTF-8)`, "Hello World !")) 
    } 
    } 

val bindingFuture = Http().bindAndHandle(route, "localhost", 8080) 

停止するには:

bindingFuture 
    .flatMap(_.unbind()) // trigger unbinding from the port 
    .onComplete(_ => system.terminate()) // and shutdown when done 
+0

私はあなたが私の質問を忘れたと思う。私はAkkaクラスターの一部としてシングルトン(これは類似している)として実行することを検討しています。 –

+1

各ノードでhttpを開始し、actorSelectionを使用して、アクタ内にエンドポイントのロジックを作成します(以前に作成したactorRefをクラスタ内にローカルまたはリモートで作成し、次にクラスタの1つにアクセスします)。 clusterClient。 routerPoolsを使用している場合、** allow-local-routee **はクラスタ内のメッセージを配信するのに役立ちます – gaston

+0

http://doc.akka.io/docs/akka/2.4/scala/cluster-singletonを見ましたか? .html? –

関連する問題