問題タブ [jgroups]
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.
jgroups - JGroup ReplicatedHashMap は自動的に初期状態を取得しますか
JGroup の ReplciatedHashMap でこの動作が見られますが、これは正しくないと思います。クラスター内に 2 つのメンバー A と B があります。A はいくつかのアイテムをレプリケートされたハッシュ マップに配置し、B はそのコピーに同じアイテムを表示します。ここで、A はチャネルを閉じて再度開き、ハッシュ マップを作成します。この時点で、A のハッシュ マップには B と同じ内容が含まれていると予想されますが、A のハッシュ マップは空のままです。私の期待は、ハッシュマップの内容がクラスター全体で一貫していることでした。
それで、私は何を間違っていますか?ビューの変更時に初期状態を設定する必要がありますか? 私はプロトコル仕様に「udp.xml」を使用しており、非常に基本的なことを行っています。どんなポインタでも大歓迎です。
java - OSGi バンドルでのデシリアライズ中に ClassNotFoundException が発生する
OSGi バンドル (と呼ばれるnet.beaconcontroller.cluster
) には、org.jgroups.blocks.ReplicatedHashMap
タイプの があり<Long, net.beaconcontroller.cluster.ControllerInfo>
ます。問題は、ディスパッチ中 (つまりControllerInfo
、リモート エンドでのデシリアライズ) に JGroups がエラーを出すことClassNotFoundException
です。(スタックトレースを添付します。) 追加
バンドルの startUp() メソッドへの行はnet.beaconcontroller.cluster
効果がありませんでした。何が欠けている可能性がありますか?
java - Jgroup の例
jgroup コードの例を示す Web サイトはありますか? jgroups.org のチュートリアルとマニュアルはあまり良くなく、Google でざっと検索してもあまり出てきません。オブジェクトをシリアル化し、チャネルを介して別の JVM などに送信する例を探しています。
前もって感謝します、
――ジャスティン・リチャード・ブレイスタイン
java - どのノードをコーディネータにする JGroups を強制するにはどうすればよいですか?
JGroups が特定のサーバーをコーディネーターとして使用するよう強制する方法を探しています。そのサーバーが存在しない場合は、指定されたサーバーがクラスターに再参加し、コーディネーターになるまで新しいコーディネーターを選出します。
この場合、更新のためにトピックをリッスンするコーディネーターによってクラスターにプッシュする情報がありますが、これらの更新のフェッチと処理はリソースを大量に消費する可能性があるため、外部に何かをサーバーに送信したくありません。そのため、クラスターの前のロードバランサーでは、コーディネーターに送信しないように設定しています。ただし、Coordinator はランダムに選出されるため、基本的には、1 台のマシンだけがそこにあるまでクラスターをシャットダウンしてから、残りのクラスターのバックアップを開始する必要があります。
multithreading - JGroups RPC: NoSuchMethodException
3 つのサーバー ノード (アメリカ領サモア、アラスカ、アラバマ) と 1 つのクライアント ノード (VoterClient) で構成されるビューを用意します。ビュー内の最初のサーバー (以下の場合はアメリカ領サモア) で投票メソッドを呼び出そうとすると、常に NoSuchMethodException が発生します。以下に示すように、ビュー内のノードのリストを次に示します (ping_dest はアメリカ領サモア、pingable_mbrs=[アメリカ領サモア、アラスカ、アラバマ、VoterClient])。だから私が電話するとき
ここでaddress1
は のアドレスであり"American Samoa"
、 およびobj.ID
はobj.candidate
リモートString
投票メソッドのパラメーターです。NoSuchMethodException が発生します。
ここに私のログと例外があります:
投票方法は次のとおりです。
これがドライバークラスです(メインメソッドのスニペット)。各状態のサーバーを初期化する方法。
GMS によって選出されたコーディネーターと関係があると思います。コーディネーターが投票サーバーの状態と同じ場合、クライアントは投票できません。以下は、コーディネーターのアメリカ領サモアがどのように選出されるかを示しています。
java - JGroups、Terracotta & Hazelcast
これら 3 つのプロジェクトに頭を悩ませようとしていますが、それらはすべて、クラスタ化しようとしたときに発生するわずかに異なる問題を処理しているようです。しかし、それらのドキュメントはすべて、すでに「よく知っている」開発者向けに書かれており、私のような初心者には理解が難しいものです。
- それぞれが解決しようとしている具体的な問題は何ですか? また、これらの問題は互いにどのように異なるのでしょうか?
- それらのそれぞれを使用したクラスタリングは、アプリ サーバーのクラスタリング (JBoss や GlassFish の組み込みのクラスタリング機能など) とどのように異なりますか?
- これらのフレームワークが解決する問題は、同じプロジェクトでの使用を保証するのに十分なほど異なっていますか? それとも、彼らは互いに競争相手であり、同じ/類似の問題に対して異なる解決策を持っていますか?
これらの好奇心旺盛でありながらとらえどころのないフレームワークについての洞察をお寄せいただきありがとうございます。
osgi - スタンドアロン.xmlファイルの設定からJBoss7.xでJGroupsチャネルを作成するにはどうすればよいですか?
JBoss7.x用のOSGIサービスを作成していますが、ドメイン関連のRPC用に新しいJChannelを作成する必要があります。スタンドアロン.xmlファイルのプロトコルスタック定義の1つを使用したいのですが、可能であれば共有トランスポートを使用したいと思います。
どこから情報にアクセスし始めるのか、どのように情報を注入するのかわかりません。
JBoss ASコードを見ると、おそらくJChannelFactoryインスタンスを取得する必要があると思います。OSGIでこれをどのように行うのですか?
jgroups - メンバーはクラスターを形成しません
WAN 上に 1 つの受信機と複数の送信機を持つクラスターを作成する必要があります。問題はJChannel.connect()
、各メンバーで同じクラスター名を使用して呼び出した後、共通のビューが作成された共通のクラスターがなく、各コンポーネントが独自のものを参照することです。その結果、受信者にメッセージを送信するときに、受信者の物理アドレスを特定できず、すべてのメッセージが破棄されます。
送り主 :
受信機:
jgroups が提供する tcp.xml は、TCPPING に小さな変更を加えて使用されました。
出力:
手伝っていただけませんか?概念が間違っている可能性がありますが、ターゲットが WAN で動作しているため、ユニキャストと TCP を使用する必要があります。
java - 新しいサービス リーダーの設置とリーダーへの通知
分散システム設計の問題があります。問題集は、
私たちはサービスに多くのクライアントを持っています。サービスはフォールト トレラントである必要があるため、多くのレプリカが必要になります。クライアントがサービスにアクセスできなくなると、レプリカに切り替わり、他のすべてのクライアントが同じレプリカに切り替わることを通知します。(レプリカのデータ値は完全に同じではなく、すべてのクライアントが常に同じデータ値を返さなければならないため、レプリカ間で負荷を分散することはできません。)
私の現在の設計は、クライアントがサービスに到達できなかった場合に、新しいサービス リーダーを依頼することです。新しいサービス リーダーが確立されると、それを使用するようにすべてのクライアントに通知します。
多くの分散調整設計と同様に、分散グループ マネージャーが必要です。ソリューションで JGroups や Apache Zookeeper を使用することを検討しています。
この問題を解決するために調べるべき既存のレシピやレシピはありますか?
infinispan - Infinispan クラスターと hotrod クライアントが通信しない
いくつかのノードを持つレプリケーション クラスターがあります。それらは相互に自由に通信できます。クラスターに参加している Hotrod サーバーもあります (他のノードによって認識されていることがわかります)。しかし、Hotrod クライアントをサーバーに接続し、キャッシュに何かを入れようとすると、次の例外が発生します。
ホットロッド クライアント:
org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for message id[4] returned server error (status=0x85): org.infinispan.CacheException: Problems invoking command.
ホットロッド サーバー:
Caused by: org.infinispan.CacheException: Type of data read is unknown. Id=-2147482548 is not amongst known reader indexes.
キャッシュストアを持つノード:
WARN: Problems unmarshalling remote command from byte buffer org.infinispan.CacheException: Type of data read is unknown. Id=-2147482548 is not amongst known reader indexes.
また、Hotrod クライアントは、他のノードによって提供された変更を認識しません。クラスター内に hotrod サーバー以外のノードがない場合 - すべてが機能します。他のノード (たとえば、CacheListener が登録されているノード) が使用可能な場合、前述の例外が発生します。
どこでも Infinispan 5.1.5.Final と JGroups 3.0.10.Final を使用しています。Win7 64 ビット、Java 6_0_32 32 ビット。すべてのノードが 1 台のマシンで動作し、クラスターは TCP トランスポート スタック上に構築されます。すべてのノードは Java SE アプリケーションです。infinispan フォーラム (https://community.jboss.org/thread/199539) にも同様の投稿がありましたが、それは古いバージョンのものです (この場合、更新が役に立ちました)。
誰かが同様の問題を抱えていましたか、または問題の原因をどこで探すべきか考えていますか?