NodeBB MongoDB Replica Set Read Preference



  • I am using NodeBB 1.5.3. I have configured NodeBB to use MongoDB Replica set as follows:

    "mongo": {
      "host": "10.0.0.11,10.0.0.12,10.0.0.13",
      "port": "27017,27017,27017",
      "username": "nodebb",
      "password": "passw0rd",
      "database": "nodebb?replicaSet=rs0&slaveOk=true"
    },
    

    But its still sending all traffic to primary MongoDB server and not using slaves to read data. I see a lot of find queries in primary MongoDB server's log file.

    2018-10-03T12:32:52.047+0000 I COMMAND  [conn6070] command nodebb.objects command: find { find: "objects", filter: { _key: /user:/i, username: "admin" }, limit: 1, singleBatch: true, batchSize: 1 } planSummary: IXSCAN { _key: 1, value: -1 } keysExamined:110998 docsExamined:707 cursorExhausted:1 keyUpdates:0 writeConflicts:0 numYields:867 nreturned:1 reslen:1121 locks:{ Global: { acquireCount: { r: 1736 } }, Database: { acquireCount: { r: 868 } }, Collection: { acquireCount: { r: 868 } } } protocol:op_query 104ms
    

    I have also tried using readPreference=secondary instead of slaveOk=true but in this case NodeBB doesn't startup. It hangs. I have to kill the process and try again and it still does the same thing over.

    Can someone help me figure this out? How do I use secondary servers as read only with NodeBB?


 

Suggested Topics

| |