• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. MongoDB的PHP驅動方法與技巧

        時間:2024-09-08 03:51:49 PHP 我要投稿
        • 相關推薦

        MongoDB的PHP驅動方法與技巧大全

          創建索引有時會阻塞新的連接

          當與mongodb復制集建立連接時,驅動程序首先嘗試連接并驗證集群中每個非 隱藏的節點。如果一個節點是“down”狀態,將跳過。然而,如果一個節點是“UP”狀態,但是持有寫鎖,那么驗證將沒法執行下去,因此該驅動程序將被掛起了。

          在mongodb 2.6版本前,在建立索引時的通病。所有的在前臺或后臺創建索引,在secondary端將在前臺創建。

          在PHP驅動程序的1.5.3版本會有所改進,在創建索引時,允許驗證到second節點驗證。

          減少is_master_interval值

          對于對可用性要求高的應用程序來說,建議檢查默認的驅動程序運行時的配置設置。

          mongo.is_master_interval選項控制著在復制集重新選舉時驅動如何快速恢復。

          is_master_interval選項默認值為15s,設置驅動發送“isMaster”請求每個mongod實例的時間間隔。這些請求幫助驅動程序判斷復制集的拓撲結構,具體的來說,就是請求檢測哪個節點是primary并可以接收寫操作。

          建議將該值設置為1或2秒,以讓驅動程序在集群選舉或故障轉移時,能夠迅速的定位到primary節點。當然啦,這也取決于有多少客戶端以及ping的頻率。

          注意,當primary節點發生變化時,如選舉或故障轉移,總是會有幾秒鐘驅動程序會收到一個“MongoConnectionException” 信息 “No candidate servers found”。這些異常需要在你的代碼中進行處理,否則會終止應用程序。

          理解連接處理方式并配置連接TimeoutMS

          PHP驅動程序不使用連接池。因此,建議你每個PHP進程創建一個連接。但是,如果web應用程序有許多PHP工作進程,將會創建很多新的數據庫連接,PHP驅動程序不能共享進程之間的連接。因此,當網絡節點慢,服務器繁忙時,PHP應用程序創建初始數據庫連接時特別容易受到阻礙。

          在這種情況下,建議你自定義 connectionTimeoutMS 選項和注意php.ini中的mongo.ping_interval選項。

          connectionTimeoutMS

          PHP驅動程序不顯示的定義一個默認的連接超時。相反,默認值由php.ini文件中的default_socket_timeout選項決定,默認是60秒。連接將等待60秒斷開,時間有些長,需要降低些。

          強烈建議通過連接字符串的URI選項中顯示設置connectionTimeoutMS選項。將其設置為5到30秒之間的值。

          mongo.ping_interval

          mongo.ping_interval默認值為5秒。該選項設置驅動程序發送ping請求到每個mongod實例發現“down”節點的時間間隔,用于跟蹤驅動程序的服務器黑名單。告訴驅動程序哪些節點忽略。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【MongoDB的PHP驅動方法與技巧】相關文章:

        關于php面試寶典及PHP面試技巧04-02

        PHP錯誤類型及屏蔽方法03-29

        十天學會php的方法03-30

        PHP處理密碼的幾種方法04-02

        了解PHP環境搭建與配置的方法04-03

        PHP開發環境安裝的方法有哪些04-03

        php在新浪云中使用imagick的方法03-15

        英語閱讀技巧方法技巧03-19

        插花技巧與方法01-21

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 综合久久本道中文字幕 | 日本全部一级视频 | 在线看黄a∨无毒网站免费 永久A电影三级在线观看 | 在线亚洲中文精品第1页 | 日本有码三级欧美国产 | 宅男666在线永久免费观看 |

            MongoDB的PHP驅動方法與技巧大全

              創建索引有時會阻塞新的連接

              當與mongodb復制集建立連接時,驅動程序首先嘗試連接并驗證集群中每個非 隱藏的節點。如果一個節點是“down”狀態,將跳過。然而,如果一個節點是“UP”狀態,但是持有寫鎖,那么驗證將沒法執行下去,因此該驅動程序將被掛起了。

              在mongodb 2.6版本前,在建立索引時的通病。所有的在前臺或后臺創建索引,在secondary端將在前臺創建。

              在PHP驅動程序的1.5.3版本會有所改進,在創建索引時,允許驗證到second節點驗證。

              減少is_master_interval值

              對于對可用性要求高的應用程序來說,建議檢查默認的驅動程序運行時的配置設置。

              mongo.is_master_interval選項控制著在復制集重新選舉時驅動如何快速恢復。

              is_master_interval選項默認值為15s,設置驅動發送“isMaster”請求每個mongod實例的時間間隔。這些請求幫助驅動程序判斷復制集的拓撲結構,具體的來說,就是請求檢測哪個節點是primary并可以接收寫操作。

              建議將該值設置為1或2秒,以讓驅動程序在集群選舉或故障轉移時,能夠迅速的定位到primary節點。當然啦,這也取決于有多少客戶端以及ping的頻率。

              注意,當primary節點發生變化時,如選舉或故障轉移,總是會有幾秒鐘驅動程序會收到一個“MongoConnectionException” 信息 “No candidate servers found”。這些異常需要在你的代碼中進行處理,否則會終止應用程序。

              理解連接處理方式并配置連接TimeoutMS

              PHP驅動程序不使用連接池。因此,建議你每個PHP進程創建一個連接。但是,如果web應用程序有許多PHP工作進程,將會創建很多新的數據庫連接,PHP驅動程序不能共享進程之間的連接。因此,當網絡節點慢,服務器繁忙時,PHP應用程序創建初始數據庫連接時特別容易受到阻礙。

              在這種情況下,建議你自定義 connectionTimeoutMS 選項和注意php.ini中的mongo.ping_interval選項。

              connectionTimeoutMS

              PHP驅動程序不顯示的定義一個默認的連接超時。相反,默認值由php.ini文件中的default_socket_timeout選項決定,默認是60秒。連接將等待60秒斷開,時間有些長,需要降低些。

              強烈建議通過連接字符串的URI選項中顯示設置connectionTimeoutMS選項。將其設置為5到30秒之間的值。

              mongo.ping_interval

              mongo.ping_interval默認值為5秒。該選項設置驅動程序發送ping請求到每個mongod實例發現“down”節點的時間間隔,用于跟蹤驅動程序的服務器黑名單。告訴驅動程序哪些節點忽略。