3

アプリケーション サーバー (具体的には Glassfish ですが、他のアプリケーション サーバーにも興味があります) で mysql 接続を構成していますが、リソース タイプとドライバーには 2 つの非常によく似たオプションがあるようです。つまり、MysqlDataSourceMysqlConnectionPoolDataSource.

両者の違いは何なのか気になります。グラスフィッシュはいずれかの方法で接続プールを維持しているように見えるため、違いが何であるかを判断するのは困難です。

あなたが提供できる洞察に感謝します。

4

1 に答える 1

2

MysqlDataSource は、接続パラメーターで定義されたデータベースへの接続を返す Java ネイティブ データベース インターフェースです。MysqlConnectionPoolDataSource は、プールされた接続リソースを返す MysqlDataSource のサブクラスです。違いは、接続リソースがプールされているか、接続のターゲットがプールされているかです。これは通常、ハード リソースと予想される接続数によって決まります。一度に多数のユーザーが接続している場合、メモリなどのハード リソースが許す限り、それらのユーザーを 1 つの接続にプールする必要があります。したがって、メモリ内で実行されているドライバーのインスタンスの数を制限し、ドライバーが内部で管理できる数のスレッドを管理できるようにします。

ネットワーク ハブとネットワーク スイッチを考えてみてください。スイッチは常に高速ですが、トラフィック量が十分に大きくなるまで実現されません。ユーザー数がメモリと CPU によってエンベロープされる可能性に達すると、プールされた接続がパフォーマンスを向上させるという点で、あなたの質問にも同じことが当てはまります。

于 2013-03-23T01:56:27.297 に答える