1つの接続(または一般的にリソース)プールを実装するための良い設計パターンは何ですか?たとえば、1つのTomcatサーバーが1つのmysqlサーバーに接続し、すべての要求がTomcatサーバー上のmysql接続プールを共有します。私はしばらくの間、Singletonを使用するか、初期化コードを静的なブロックの中に入れるように提案された人たちを探しています。しかし、シングルトンは悪いとの意見もあります。では、接続プーリングに使用する正しい設計パターンは何でしょうか。ありがとう。接続プーリングのための良い設計パターンは何ですか?
4
A
答えて
3
Object (Resource) Pool is a Design Pattern。
Tomcatには1つのConnectionプールはありませんが、代わりにdefine multiple poolsを使用できます。次に、service providerを介してグローバルサーバー、サービス、エンジン、ホスト、または単一のcontextのいずれかとして、各プールへのスコープとアクセスを制御します。アプリケーションは接続プールを検索し、サービスプロバイダは定義されたルールが確実に維持されるようにします。
しかし、あなたの質問はとてもオープンに終わってしまったので、最も適切な解決策を提案することはできません。
1
シングルトンデザインパターンが好ましい。
インスタンスを1回作成し、頻繁に使用します。
タイムリーな接続プールSingleton
これは簡単で良いでしょう。
2
FlyWeight接続プーリングに使用されるデザインパターン。 GOFによって述べられているように、「多数の細かいオブジェクトの再利用を容易にし、多数のオブジェクトをより効率的に利用できるようにする」
関連する問題
- 1. ASP.NETのウィジェットを設計するための良いパターンは何ですか?
- 2. リクエスト中に再計算や二重クエリを避けるための良い設計パターンは何ですか?
- 3. Qtアプリケーションのための良いMV *パターンは何ですか?
- 4. 並列検索エンジンとデータベースのAPIをモデル化するための良い設計パターンは何ですか?
- 5. C++ポリシーベースのクラス設計のための良いチュートリアルは何ですか?
- 6. PHPの接続プーリング
- 7. VoltDBの接続プーリング
- 8. データベース永続性設計パターンとは何ですか?
- 9. PostgreSQL JDBCでの接続プーリング
- 10. SQL Azureでの接続プーリング
- 11. マルチスレッドサービスでのデータベース接続プーリング
- 12. HTTP接続プーリングは可能ですか?
- 13. スプリング接続プーリング
- 14. 接続プーリングHibernate
- 15. jboss接続プーリング
- 16. eclipselink接続プーリング
- 17. クラウド - 接続プーリング
- 18. DBCP2接続プーリングを使用するためにHibernateを設定するには?
- 19. Elasticsearchのスプリングブートで接続プーリングを設定するには
- 20. データベース接続プーリング・ライブラリの最良の選択肢は何ですか? (c3p0の問題)
- 21. リレーショナルデータベース設計のための良いリソース
- 22. インタプリタとメディエータの設計パターンの違いは何ですか?
- 23. 工場とパイプラインの設計パターンの違いは何ですか?
- 24. SQLAlchemy接続、プーリング、SQLite
- 25. ヒステリックと接続プーリング
- 26. ApiControllersの結果を処理するための良いパターンは何ですか?
- 27. Djangoでルックアップテーブルを実装するための良いパターンは何ですか?
- 28. httpリクエストごとのダイレクトdb接続と接続プーリング - 違いは
- 29. Tomcat 7の接続プーリング
- 30. erlangのリーク接続プーリング
1. apache dbcp poolingのような既存のプーリングフレームワークの使用を検討してください。 Tomcatはそれらをhttp://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#Database_Connection_Pool_%28DBCP%29_Configurationsにビルドしています。2. "Factory"パターンは、通常、あなたはそれを自分で行います。 – vasquez
@vasquezお返事ありがとう! – Geni