私はしばらくの間、Akkaを勉強していました。アクターモデルを利用し、データベースとの接続を維持する必要のあるアプリケーションを構築していますが、私はジレンマがあります。 ?Akkaアクタを使用してデータベース接続をどのように管理しますか?
これは、これまでのところ、私の推論です:
- 接続が一度だけ初期化する必要があります。
- 接続は状態を表すため、アクター内に存在する必要があります。このアクタのDatabaseConnectionを(単に創造的なものに)呼びましょう。
- 私は俳優の状態を共有したくないので、すべての質問はこの俳優の内部で行われるべきです。
- 私が使用しているデータベースドライバはreactive-mongoですので、各クエリは送信者にパイプすることができる未来を返します。
Futuresを使用してクエリを実行しても、このモデルが拡大縮小できないと考えることはできません。すべてのデータベースアクセスメッセージを管理するスレッドは1つだけですか?先物を利用しても不合理に聞こえる。 私は子供の作業者にデータベースクエリを管理させることを考えましたが、私は子供との関係を共有しなければなりません。 私はこの最後のアイデアが気に入っています。なぜなら、DatabaseConnectionアクタが死ぬと、すべての子どもも理論上死ぬからです。しかし、状態を共有せずにこの問題を解決するもう一つの良い方法があるかどうかはわかりません。ある?
[AkkaとReactiveMongo](https://stackoverflow.com/questions/18638570/akka-and-activeMongo)の可能な複製 – cvargascr
[ReactiveMongo:単一の接続プールインスタンスと複数の接続プールインスタンスと複数の接続プールとの重複の可能性があります](https://stackoverflow.com/questions/45859204/reactivemongo-single-connection-pool-instance-vs-many-connection-pool-instances) – cchantep