2016-07-30 4 views
0

私の質問はとてもシンプルなようですが、より深い点検を必要とするいくつかのサブ質問があります。 私の質問: データベース接続を処理するためのベストプラクティス/アーキテクチャは何ですか?RESTアプリケーションでのDatabaseConnectionのアーキテクチャ

私はオプションが見つかりました:それぞれについて、

  1. は、データベース(DB)とのFULサービスを休ま要求は、DBへの新しい 接続を作成し、クエリの後、再びこれを閉じます。
  2. RESTサービスの外部に接続を作成し、 クエリごとにこれを使用します。

オプション1: この1つの否定的な点は、各リクエストの接続を終了して閉じるためのコストです。

オプション2: それが動作するかどうかわかりません。私はこれがどのように機能するのかを調べるためにWebサービスライフサイクルを研究しましたが、Webサービスの終了後にインスタンスが存続するかどうかはわかりません。また、接続を破壊するイベントが発生する可能性があるため、それが良い方法かどうかもわかりません。最後の問題は、リクエストがブロックされる可能性がある(スレッドの概念を破壊する)ことだと思います。

このアーキテクチャで私を少し助けてくれることを願っています。

挨拶し、

ニック

答えて

0

クエリ/トランザクションごとに1つを作成した場合、接続の「クローズ」を管理する方がはるかに簡単です。

私は常識的に、オープンしてから使用しなければならない理由を理解できますが、接続の切断やマルチスレッドの問題に遭遇します。ですから、あなたの次のステップは、プールを開き、50の接続を開いて、それらをすべて開いたままにして、別のプロセスにそれらを渡すことです。

接続が必要なときに開いて終了したら、実際に接続を閉じることはなく、接続プールに戻してもう一度使用します。

+0

おかげさまで、あなたの名前は "Connection Pool/ing"です。そのような**接続プール**を提供するいくつかのフレームワーク/サービスを見つけました。私の場合、Apache Tomcatもこのようなサービスを提供しています。 – Kinimod

関連する問題