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