ドキュメント

§Pekko Typedのためのクラスタシャーディング(インキュベーション)

Playは、PekkoクラスタシャーディングTypedとの統合のためのインキュベーションモジュールを提供します。このモジュールを有効にするには、ビルドに次の依存関係を追加します。

Java
libraryDependencies += javaClusterSharding
Scala
libraryDependencies += clusterSharding

§使い方

依存関係としてクラスタシャーディングを適切に含めたら、依存性注入を使用してインスタンスを取得できます。ランタイムとコンパイル時の依存性注入の両方に対していくつかのヘルパーを提供しました。

PlayはDIメカニズムのみを提供していることに注意してください。インジェクションで使用可能になるクラスインスタンスは、Javaの場合はPekkoのpekko.cluster.sharding.typed.javadsl.ClusterSharding、Scalaの場合はpekko.cluster.sharding.typed.scaladsl.ClusterShardingです。

§ランタイム依存性注入

ランタイム依存性注入は、Playの他のランタイムDIモジュールと同様に機能します。つまり、依存関係を追加するとモジュールが自動的に有効になり、インスタンスをインジェクションに使用できます。

§コンパイル時依存性注入

コンパイル時DIを使用している場合は、次のようにコンポーネントを使用してClusterShardingにアクセスできます。

Java
import play.ApplicationLoader;
import play.BuiltInComponentsFromContext;
import play.cluster.sharding.typed.ClusterShardingComponents;
import play.controllers.AssetsComponents;
import play.filters.components.HttpFiltersComponents;
import play.routing.Router;

public class ComponentsWithClusterSharding extends BuiltInComponentsFromContext
    implements ClusterShardingComponents, AssetsComponents, HttpFiltersComponents {

  public ComponentsWithClusterSharding(ApplicationLoader.Context context) {
    super(context);
  }

  @Override
  public Router router() {
    return Router.empty();
  }
}
Scala
import play.api._
import play.api.cluster.sharding.typed.ClusterShardingComponents
import play.api.routing.Router
import play.api.ApplicationLoader.Context

class MyApplicationLoader extends ApplicationLoader {
  def load(context: Context) = {
    new ComponentsWithClusterSharding(context).application
  }
}

class ComponentsWithClusterSharding(context: Context)
    extends BuiltInComponentsFromContext(context)
    with play.filters.HttpFiltersComponents
    with ClusterShardingComponents {
  lazy val router = Router.empty
}

§クラスタの形成

このモジュールを含めると、アプリケーションのActorSystemはクラスタ環境用に構成されます。その結果、Pekko Remoteが起動し、デフォルトでポート17355にバインドされます(異なるポートを構成する方法については、Pekkoのドキュメントを参照してください)。

さらに、アプリケーションのActor Systemが、アプリケーションの他のインスタンスとクラスタを形成することが期待されます。Pekkoクラスタを形成する方法については、Pekkoのドキュメントを参照してください。

次へ: Playへの貢献


このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。 ドキュメントのガイドラインを読んだ後、プルリクエストを自由に貢献してください。質問や共有するアドバイスがありますか? コミュニティフォーラムにアクセスして、コミュニティとの会話を開始してください。