0

私は最近、アクター モデルについて読んでいますが、同時発生の問題に適したプログラミング モデルであることがわかりました。Scala、Jetlang、Klimi など、これを使用する多くのプログラム言語またはツールがあります。

しかし、これらを一般的な Web アプリケーション (たとえば、サーブレット ベースのアプリケーション) で使用するにはどうすればよいでしょうか? サーブレットはマルチスレッド スタイルで実行されます。アクター モデルを使用して、サーブレット (または SpringMVC コントローラーなど) のメンバー変数のような共有日付を排除できますか?

アクター モデルを使用して同時リクエストを処理するサーブレット コンテナはありますか?

4

1 に答える 1

0

それは一種の誤解です。アプリケーションサーバーはすでにJava EE仕様に従わなければならない同時実行モデルを実装しているため、「サーブレット環境でアクターモデルを使用する」ことはできません。

特に、サーブレット内に (変更可能な) 共有データを持つことは禁止されています。これは、1 つのサーブレット オブジェクトを使用してすべての来るべき要求を処理するためです。一方、ステートフルな EJB コンポーネントを使用している場合は、同時実行の問題を気にする必要はありません。スレッド管理は EJB コンテナーによって行われ、実際、スレッドをいじることは許可されていません。

(Java EE に基づく既存のサーバーを使用する代わりに) 独自のサーバーを作成する場合は、同時実行モデルの選択を検討する価値があります。

アクターは現在「ホット トピック」であり、「今週のバズワード」のようですが、アクター モデルの使用に関連する問題や落とし穴を Web で検索してください。現実は、宣伝されている理論ほど明るいものではありません。

たとえば Netty を見て構築できるパフォーマンスの高いサーバー/クライアント ソリューションを検索する場合、これはかなりクールなソフトウェアです。

于 2012-05-21T21:51:32.617 に答える