問題タブ [akka-cluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
akka - Akka クラスター: ノード ID の危機
15 個のノード/ボックスのクラスターがあります。ノードをほぼ同時に起動します。ノードの 1 つが異常な動作をしており、「他の誰かを対象とした受信したゴシップを無視しています」と継続的にログに記録しています。ただし、ノードはクラスターから削除されるまでしばらくは機能しているように見えます。基本的に、この 1 つのノードは、自分自身のように振る舞いながら、自分を別の誰かだと思っているようです。コードと構成は 15 ノードすべてでまったく同じであるため、1 つのノードだけでこの問題が発生する理由がわかりません。多分これはハードウェアの問題ですか?
いくつかのログ:
構成:
java - Akka Cluster、Cluster Sharding、Cluster singleton のユースケース
Akka アプリケーションを作成しており、Typsafe が提供する Akka Cluster 機能を使用したいと考えています。Akka Cluster、Akka Cluster Singleton、Akka Cluster Sharding の主な違いを理解しようとしています。私には、彼らは同様のものを提供しているように見えます。
私のシナリオでは、次のようなクラスターが必要です。
- どのマシンにも住むことができるステートレスなアクター (私はそれらのプールを用意します)
- 特定のマシンに住んでもらいたいステートレス アクター
- ステートフル アクターは任意のマシンに存在できますが、クラスター全体で 1 つのインスタンスだけが必要であり、アクターが停止した場合に以前の状態でアクターを再起動できる必要があります。
私が読んだ内容に基づいて、第 1 種には Akka Cluster、第 2 種には Akka Cluster Singleton、第 3 種には Akka Cluster Sharding が必要です。私の仮定は正しいですか?いくつかのガイダンスとオンラインの例を探しています。
akka - Akka Cluster Singleton PatternでLEADERになるイベントのサブスクライブ方法
Akka シングルトン クラスターのインスタンス メンバーとして、Akka クラスター シングルトン パターンで LEADER になるイベントをサブスクライブする方法。
application.conf は次のとおりです。
serialization - Akka クラスター カスタム シリアライザー:
Akka Cluster を使用して冗長性を実現し、Java アプリケーションの単一障害点を取り除きます。ただし、あるマシンから別のマシンにメッセージを送信するときに、メッセージのシリアル化に問題があります。
を実装していないJava オブジェクトを送信していますSerializable
。そのため、独自のシリアライザーを使用する必要があり、幸運にもオブジェクトは Kryo を使用したシリアライゼーション メソッドを提供します。したがって、このガイドに従って、拡張する独自の akka シリアライザーを作成しましたJSerializer
。
コードは非常に簡単で、それが問題だとは思いません。次に、シリアライザーとシリアライザー バインディングを構成に追加します。
単一ノードを実行している場合、問題はありません (明らかに、何もシリアライズしていないためです...)。ただし、クラスターモードでは、次の例外が発生し続けます。
そして、私にとっては、どのシリアライザーを使用するかを理解できず、実際には汎用の Java シリアライザーを使用していることを意味します。また、関連しているかどうかはわかりませんが、メッセージを ConsistentHashableEnvelope でラップしています。これは、メッセージをクラスター対応のコンシステント ハッシュ グループに送信しているためです。
このことを機能させるための助けはありますか?何か不足していますか?
akka - Akka クラスターの種類
Akka でクラスタリングがどのように機能するかを理解しようとしています。具体的には、次の 2 つの異なるタイプのクラスタリングに興味があります。
- クラスター内の各「ノード」(JVM) に異なるアクタが混在する異種ノード。と
- 同種のノード。各ノードにはすべて同じタイプのアクタが含まれます
上記は、異種ノードと同種ノードの意味の例です。最初 (上) の図では、がと AWS マシンのall-actors.jar
3 つのマシンにデプロイされています。2 番目 (下) の図では、3 つの異なるタイプのアクター システムがデプロイされています。各マシンに 1 つ。異種モデルには単純さの利点があり、アクター システム全体をスケーラブルにします。同種モデルは、よりきめ細かい弾力性を可能にします (おそらく、「A」または「C」よりも 3 倍多くの「B」アクタが必要など)。myapp01
myapp02
- Akka は両方のタイプのクラスタリング (異種および同種) をサポートしていますか? そうでない場合、これらのクラスタリング戦略を取得するには何が必要ですか (既存のクラスタリングの上に追加)? その場合、各タイプはどのように構成されていますか?
- 各ノードに必要なアクタの数を制御することはできますか? 「 A-Actorを500人、B-Actorを200人、C-Actorを1,000人欲しい」
myapp01
と言うことは可能ですか? それとも、Akka はメッセージングの需要に応じて、さまざまなアクターを自動的にスケールアップ/スケールダウンするだけですか?
scala - akka クラスターのシャーディングを開始するにはどうすればよいですか?
akka クラスターのシャーディングを開始するにはClusterSharding(system).start
、いくつかのパラメーターを指定して呼び出す必要があります。すべてのノードのクラスタ シャーディングを手動で開始する必要がありますか? ClusterSharding(system).start
つまり、起動時に1つのノードから呼び出すだけで十分ですか、それともすべてのノードがこれを呼び出す必要がありますか?