1. ホーム
  2. java

[解決済み] Akkaフレームワークの最適なユースケースは何か【非公開

2022-03-16 07:34:23

質問

<余談
クローズド . この質問は 意見型 . 現在、回答は受け付けておりません。

<パス

この質問を改善したいですか? 事実と引用で答えられるように、質問を更新する。 本論文の編集 .

終了 <スパン 8年前 .

を絶賛する声をたくさん耳にします。 アッカ フレームワーク(Java/Scalaのサービスプラットフォーム)ですが、今のところ、実際にどのような用途に適しているのか、あまり例を見たことがありません。そこで、開発者がこのフレームワークを使用して成功した事例を聞きたいと思っています。

ただ1つだけ、チャットサーバーを作るケースは入れないでください。 (なぜかというと、これはたくさんの似たようなものの例として使い古されているからです)。

解決方法は?

どちらも、ほぼリアルタイムの交通情報(高速道路を走る車の交通)の分野で、複数のノードに分散し、複数の関係者間のメッセージを統合し、信頼性の高いバックエンドシステムを構築しています。クライアントの詳細はまだ言えませんが、OKが出たらリファレンスとして追加するかもしれません。

アッカは、バージョン0.7のときに始めたにもかかわらず、これらのプロジェクトで本当に力を発揮してくれました。(ちなみに、私たちは scala を使っています)。

大きな利点の1つは、アクターとメッセージからシステムを構成するのが簡単で、ほとんど下ごしらえを必要としないことです。

あらゆるタイプの非同期メッセージ処理をモデル化するのに非常に優れています。私は、どんなタイプの(Web)サービスシステムでも、他のスタイルよりもこのスタイルで書きたいと思っています。(JAX-WSで非同期Webサービス(サーバーサイド)を書こうとしたことがありますか?それは多くの配管があります)。つまり、すべてが暗黙のうちに同期メソッドを使って呼び出され、その1つのコンポーネントが何かにロックしているため、そのコンポーネントの1つにハングアップしたくないシステムなら何でもいいと思います。非常に安定しており、失敗に対するlet-it-crash + supervisorのソリューションは本当によく機能します。プログラム的にセットアップするのは簡単で、ユニットテストも難しくありません。

それから、アドオンモジュールが充実しているのも特徴です。 Camel モジュールは、Akka にうまく接続でき、設定可能なエンドポイントを持つ非同期サービスを簡単に開発することができます。

このフレームワークには非常に満足していますし、私たちが構築する接続システムのデファクトスタンダードになりつつあります。