0

分散 JVM アプリケーション用のジョブ キューを実装する必要があります。

キューは、順番に実行する必要があるジョブのグループ (つまり、Java ランナブル) を保持する必要があります。クラスター上で自動的に並列化する必要がある「ジョブ グループ」またはキューが何百もあります。マシンがクラッシュした場合にアプリケーション全体が実行されるように、ジョブ キューはフェールセーフである必要があります。

また、Weel を再発明したくないので、私の要件を満たすことができるライブラリまたはフレームワークが既にある場合は、それを歓迎します。

質問: どのテクノロジーを使用すればよいですか? akkaは適切ですか?他に推奨できるライブラリはありますか?

4

3 に答える 3

2

昔は、jGroups または ZooKeeper が標準的な方法でした。しかし、Akka はより柔軟で、あなたからより多くの面倒を引き受けることができます。

Akka よりも ZooKeeper が持っている機能の 1 つは、状態のレプリケーションです。つまり、一部のジョブがキューに入れられなかったり、ジョブの実行中にプロセスがクラッシュしたりした場合、Akka はそれを自動的に復元しません。ただし、これにより優れたスループットが得られ、完璧な世界についての幻想を破棄することもできます。これは、私たちが住んでいないことを知っているためです。

于 2013-01-21T15:24:59.707 に答える
0

Akkaは間違いなく適切です。「フェイルセーフキュー」要件を処理するには、Akkaの耐久性のあるメールボックスを確認してください。

于 2013-01-22T03:24:06.667 に答える
0

eventsourcedライブラリの信頼できるチャネルが役立つ場合があります。Eventsourced は、チャネルを介した少なくとも 1 回のメッセージ配信とともに、ステートフルな Akka アクターに永続性を追加し、JVM クラッシュからアクターとチャネルの状態を回復できるようにします。この例は、ライブラリを akka-cluster で使用する方法を示しています。この例では一時的なチャネルを使用していますが、例のこの行ReliableChannelPropsを使用して、信頼できるチャネルに置き換えることができます。あるノードで信頼できるチャネルに障害が発生すると、クラスター内の別のノードで自動的に回復されます。

于 2013-01-22T07:56:14.960 に答える