想實現mongodb集群的就近讀寫功能,須如何配置?


  • Lv 1

    mongodb支持分布式的服務器集群,請問有人清楚需要如何佈署機器&如何配置副本集,才可以使用"就近讀寫"的特性嗎?

    比如在中國與美國都有服務器,且希望當地用戶就近的讀寫。

    如何實現?使用上又有什麼限制呢?先感謝各位大大~


  • Lv 1

    "就近讀"

    佈署及配置跟一般集群一樣,只需要在mongos設定讀最近的服務器

    db.getMongo().setReadPref('nearest')

    nearest這個參數可以使用primary, primaryPreferred, secondary, secondaryPreferred,nearest.

    (預設為primary)

    不過要注意的是最近的服務器是指離mongos最近的,因此如果分成美國地區跟大陸地區,那美國跟大陸都需要有mongos,美國的服務連到美國的mongos;大陸的服務連到大陸的mongos


    "就近寫"

    需要使用分片標籤的方式來區分要放在哪台服務器上,如下配置

    sh.addShardTag('分片名','Tag名') //新增Tag
    

    定義shard的資料範圍,決定將哪些資料放在哪個分片上

    (欄位A、欄位B為片鍵)

    sh.addTagRange(
        '數據庫名.集合名',
        {'欄位A':'US','欄位B':MinKey},
        {'欄位A':'US','欄位B':MaxKey},
        'Tag名'
    )
    

  • 註冊用戶

    很實用,收藏起來~ 感謝~


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待