4

1つの接続(または一般的にリソース)プールを実装するための良い設計パターンは何ですか?たとえば、1つのTomcatサーバーが1つのmysqlサーバーに接続し、すべての要求がTomcatサーバー上のmysql接続プールを共有します。私はしばらくの間、Singletonを使用するか、初期化コードを静的なブロックの中に入れるように提案された人たちを探しています。しかし、シングルトンは悪いとの意見もあります。では、接続プーリングに使用する正しい設計パターンは何でしょうか。ありがとう。接続プーリングのための良い設計パターンは何ですか?

+1

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

+0

@vasquezお返事ありがとう! – Geni

答えて

3

Object (Resource) Pool is a Design Pattern

Tomcatには1つのConnectionプールはありませんが、代わりにdefine multiple poolsを使用できます。次に、service providerを介してグローバルサーバー、サービス、エンジン、ホスト、または単一のcontextのいずれかとして、各プールへのスコープとアクセスを制御します。アプリケーションは接続プールを検索し、サービスプロバイダは定義されたルールが確実に維持されるようにします。

しかし、あなたの質問はとてもオープンに終わってしまったので、最も適切な解決策を提案することはできません。

1

シングルトンデザインパターンが好ましい。

インスタンスを1回作成し、頻繁に使用します。

タイムリーな接続プールSingletonこれは簡単で良いでしょう。

2

FlyWeight接続プーリングに使用されるデザインパターン。 GOFによって述べられているように、「多数の細かいオブジェクトの再利用を容易にし、多数のオブジェクトをより効率的に利用できるようにする」

関連する問題