postgres接続プーリングで使用できるC/C++ライブラリはありますか?私はミドルウェアのようなpgpoolを見てきました。私はアプリケーションにコード化できるライブラリを探しています。postgres接続プーリングライブラリ
答えて
良いアプリ内接続プーリングライブラリはありません。コミュニティ全体のほとんどは外部プロキシを使用しています。特に、追加の運用上のメリットのためにpgbouncer
があります。同じ呼吸では、SOCI has a connection poolですが、それはpgbouncer
とほぼ同じくらい広く使われていません。
私は自分のサーバーに新しいサービスやプロセスを導入する必要がないソリューションを探したかったのです。私は私自身のプールライブラリを書く必要があるように見えます。 [SQL Relay](http://sqlrelay.sourceforge.net/sqlrelay/)の使用についてのご意見はありますか? – Vasu
まだlibpqxxを見ましたか?これは接続プーラーではありませんが、アプリケーションコードから接続処理を抽象化するためのC++ APIを提供します。これにより、アプリは独自の接続プールを簡単に構築して管理することができます。
これはとても簡単です(ファクトリメソッドを使用してプールクラスを示す例はshared_ptr & pqxxのboostを使用しています)。 runQueryメソッドが指定されたプールから接続を取得し、pqxx APIを呼び出して基礎となる接続でクエリを実行すると想像できます。プールに接続を戻すことができます。
class DbPool {
public:
static db_handle_t create(const string &conn,
uint32_t max = DEFAULT_CON_MAX,
uint32_t min = DEFAULT_CON_MIN);
static pqxx::result runQuery(db_handle_t pool,
const string& query);
private:
DbPool(const string& con, uint32_t max_cons,
uint32_t min_cons);
static boost::ptr_vector<DbPool> pool_; // Keep a static vector of pools,
pqxx::connection *createCon();
void releaseCon(pqxx::connection *c);
uint32_t initializeCons();
pqxx::connection *getCon();
boost::ptr_list<pqxx::connection> m_freeCons;
}
偉大な答えですが、お互いの質問に干渉しないように、接続を管理する必要はありませんか?私はPostgresに慣れていないので、すでに自動的に管理しているかどうかはわかりません。 –
- 1. Pentahoで使用される接続プーリングライブラリ
- 2. ドッカーコンテナPostgres接続エラー
- 3. R接続のPostgres
- 4. Postgres FDW接続Linux
- 5. intellijの終了postgres接続
- 6. NodeJS Postgresヘルパー - リリース接続
- 7. SwiftからPostgresに接続
- 8. pyodbcをPostgresに接続
- 9. モカテストドレインPostgresの接続プール
- 10. Postgres Npgsqlの接続プーリング
- 11. ClojureScript、Heroku - Postgresデータベースに接続
- 12. Docker Compose + Spring Boot + Postgres接続
- 13. ローカル接続からHeroku postgresデータベースに接続する方法
- 14. postgresへの接続方法sqlalchemyとの最大接続?
- 15. 接続あたりのPostgres同時トランザクション
- 16. DjangoをHeroku Postgresデータベースに接続する
- 17. GAEフレキシブル環境postgres接続文字列?
- 18. heroku postgresデータベースに接続するには?
- 19. typeormドッカーコンテナからpostgresを接続する
- 20. ユニットテスト機能Postgres DBに接続する
- 21. Googleコンピューティングエンジンのpostgresサーバーに接続
- 22. Google Scriptからpostgresに接続
- 23. postgres alter table接続プールでハングする
- 24. Heroku Postgres DBをケトルに接続する
- 25. ノードアプリケーションのHeroku-Postgres接続文字列
- 26. Knex PostgresのHerokuの - エラー:接続
- 27. シェル上でのPythonとPostgresの接続
- 28. Spring BootがHerokuのPostgresデータベースに接続
- 29. はPostgresの接続の問題
- 30. Postgres経由でTeradata DBに接続
明確にするために、1つ以上のデータベースへの接続のリストを維持するものを探していますか?最も単純な答えは、 'PGconn *'の配列を使うことです。おそらく、コネクション・プーリングが伝統的にミドルウェアを参照しているので、必要なものが何であるかをより具体的に説明する必要があります。 – unpythonic
はい、私はそれを正確に探しています。私はjavaのための[Apache DBCP](http://commons.apache.org/dbcp/)のようなものを考えていました。いったんプールを設定すると、接続の健全性をチェックしたり、接続が切断されたりするのを心配する必要はありません。プールはこれをすべて透過的に管理し、きれいなAPIを提示する必要があります。 – Vasu