在Linux上實現MongoDB的讀寫分離,通常需要以下幾個步驟:
配置主從復制(Replication):
配置讀偏好(Read Preference):
配置連接字符串:
以下是一個示例配置:
假設你有三個MongoDB服務器,分別是mongo1, mongo2, 和 mongo3。你可以使用以下命令初始化副本集:
mongo --host mongo1 --eval 'rs.initiate({
_id: "myReplicaSet",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
})'
在應用程序中,你可以設置讀偏好為secondaryPreferred,這樣讀操作會優先從從節點讀?。?/p>
const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb://mongo1:27017,mongo2:27017,mongo3:27017/?replicaSet=myReplicaSet&readPreference=secondaryPreferred';
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
async function run() {
try {
await client.connect();
const database = client.db('mydatabase');
const collection = database.collection('mycollection');
// 執行讀操作
const result = await collection.find({}).toArray();
console.log(result);
} finally {
await client.close();
}
}
run().catch(console.error);
通過以上步驟,你可以在Linux上實現MongoDB的讀寫分離,提高系統的讀取性能和可用性。