Windows上のJavaサービスに対して複数の異なるサーバー間で複数のスレッドの処理を同期させる必要があるという問題があります。Java:複数のサーバー間でスレッドを同期する
このアプリケーションでは、同じJMSキューから複数のコンシューマスレッドpullingsメッセージがあります。メッセージは3つまたは4つのグループに分かれています。各グループのメッセージが完全にシリアルで処理されるようにする必要があります。スレッド1がメッセージをオフにしてから、スレッド2がそのグループから次のメッセージをプルするかどうかを確認するために、何らかの同期メカニズムが必要です。スレッド2はスレッド1の処理が完了する前に処理を完了します。
スレッドの分散同期メカニズムに関する提案はありますか?どんなタイプのソリューションも良いでしょう(JMSソリューション、分散キャッシングなど)
注:使用しているJMSプロバイダはActiveMQです。
を分散。新しいグループを継続的に作成している場合、メッセージグループで何が起こるかを知っていますか?内部ハッシュは継続的に成長するでしょうか?グループを「削除」または「期限切れにする」方法があるので、グループはメモリに永久に座るだけではありませんか?答えはThx、btw。 –
メッセージグループを閉じることができます(リンク先のページで詳しく説明しています)。私は、新しいグループを作成する際のオーバーヘッドについては分かりませんが、ソースから直接どのように行われているかを確認するのはおそらくでしょう。 – andri