2016-11-10 16 views
1

PHPからmongoDBへの接続に次のコードを使用しています。ここに私のローカルホストからの私の拡張情報があり、同じものがベータ版とプロード版です。 version statPHPでのMongoDBデータベース接続

私は次のコードを使用してデータベースに接続しています。

class WebAPI { 
    private $mongoClient; 
    function __construct() { 
     $mongoClient = new MongoDB\Client("mongodb://database.local:27017"); 
     if(!$mongoClient){ 
      //TODO: Inform status site about failure 
      http_response_code(500); 
      die(); 
     } 
     $statsDB = $mongoClient->stats; //selects database stats 
     $pageViewsCollection = $statsDB->pageviews; 
     $result = $pageViewsCollection->insertOne(PageViewInsights::getInfo()); 
     var_dump($result->getInsertedId()); 
    } 
} 

SQLデータベースでは、接続プーリングを使用します。私はmongodbにも1つがあると思う、私は確信していない。私はそれをgoogled、しかし、この新しいmongodb 1.1.xバージョンのために何も便利にはならない。

これを行うより良い方法はありますか?ルイス・エドゥアルド・デ・クリストhereで述べたよう

UPDATE

、私はより適切な情報のための質問を拡張しています。

接続プールが適切でない場合は、大量の接続を処理するにはどうすればよいですか。私は、各HTTP要求に対して1つの接続を使用し、その1つの接続を使用してすべてのトランザクションを管理することができました。たとえば、CentOSまたはUbuntuでは8GB RAM、Hexacore Xeon E5 @ 3.1GHz、 mongodだけをApacheのような他のサーバーなしで動かすと、最大接続数はどのくらいありますか?サーバーが同時に処理できるユーザーの数これをMongoDB 3.2で最適化する方法はありますか?

PS:情報はありません私はサーバーの構成に関するデータベースの最適化について知ることができます。

答えて

1

コードは正常です。 PHPマニュアルに従って

:プーリングについて

このセクションでは、もはや ドライバの1.3.0リリースのような関連しないとのみプーリング のに使用される方法についての履歴情報となります作業。 "ドライバーの最新バージョンは、 のプールの概念を持たず、接続ごとに接続ごとに1つの接続のみを保持します タイプ(ReplicaSet/standalone/mongos)、各資格に対して の組み合わせ。

http://php.net/manual/pt_BR/mongo.connecting.pools.php

敬具、 エドゥアルド。

+0

どのように膨大な接続ボリュームを管理できますか?その情報は?または、この方法は効率的な方法ですか? – Sibidharan

+0

この場合、インフラストラクチャとコードの関係がPHPによって管理されているため、心配する必要はありませんか?私が考えることができるのは、Mongodb Replicaをクラスタとシャードで使用するようなものです。 (https://docs.mongodb.com/manual/replication/)と http://stackoverflow.com/questions/17839962/persistent-connection-or-connection-pooling-inをご覧ください。 -php54-nginx-phpfpm-mongodb https://www.quora.com/How-should-I-set-up-mongodb-cluster-to-handle-20K+-simultaneous-connections – deChristo

+0

この場合、 。私は、接続管理と最大の接続のために質問を更新しています。可能であれば、その点についてさらにデータを提供してください。 – Sibidharan

関連する問題