2016-04-25 8 views
3

私はJavaでWebサービスを構築しています。ビジネスロジックには並行性の要件はありません。入力jsonが期待され、処理の後に出力jsonがスローされる単純な休憩コールです。しかし、ロードバランサを導入しようとしているところであれば、何百万ものリクエストが可能です。非同期環境でのAkkaフレームワークの使用

私の質問akkaを使用すると開発が速くなり、パフォーマンスも向上すると言ういくつかの記事を読んだことがあります。同時性要件がないアプリケーションの場合はこれが当てはまりますか?

ありがとうございます。

+0

あなたが仕事を配布することを望んでいるなら、多分これは良い読書でしょう:http://www.lightbend.com/activator/template/akka-distributed-workers –

+0

@ bali182:私はユースケースを持っていません処理のタスクとしての分割作業の数は非常に少ない。しかし、私は多くの並列要求を処理する必要があります。私が知りたいのは、akkaがユースケースのための良い選択であるか、伝統的なJavaの休憩セブンスと一緒に行かなければならないことです。 –

答えて

1

並行処理の要件がなくても、Akkaは素晴らしいフレームワークです。アクターを使用して、単一の責任をカプセル化し、それらに応答するメッセージを送信し、別のメッセージで応答することができます。

これは、ドメイン内のエラーをモデル化できるというメリットがあります。つまり、エラーのあるメッセージを送信者に送信します。送信者は、そのメッセージを処理する方法を決定できます。 n回リトライする。だから、あなたはAkkaで良い例外モデリングを取得します。

さらに良いことに、ActorがExceptionで失敗すると、親Actorは何をするかを決めることができます。アクターを再起動し、階層内のさらに高いエラーを伝播します。

結論として、Akkaはメッセージに基づいてしっかりした反応ドメインを開発するのに役立ちます。また、ロジックが変更されたときに、後でそれを同時に実行したり、他のアクターにもメッセージを渡したりすることが容易になります。

+0

ありがとうございました。伝統的なレストサービスデザインにakkaを使用した場合の速度の増加/減少についてコメントできますか? –

+0

これは、使用しているHttpフレームワークによって異なります。 Akka Httpを使用して、httpエンドポイントやその他のフレームワークを公開することができます。 Akkaは、あなたがそれを同時に(そしてより速く)作るのを助けることができますが、それはAkkaの主な目的ではありません。しかし、それは弾力性と弾力性を高めるのに役立ちます。 –

関連する問題