در این پست میخوایم در مورد replica set صبحت کنیم
در بحث replica set شما می تونید یک دیتابیس اصلی یا primary داشته باشید و همینطوری چندین دیتابیس ثانویه یا secondary که شما عملیات های read و write را روی دیتابیس primary انجام میدید و عملیات های readOnly را فقط روی دیتابیس های ثانویه انجام میدید
که این خب باعث افزایش سرعت و عملکرد بخش های داده کاوی در پنل های مدیریت هم میشه
خب حالا چطوری باید اینکارو بکنیم خیلی سادس :)
ابتدا docker را روی سیستم خود باید نصب داشته باشید
سپس به صورت زیر دستورات docker را وارد کنید تا معماری شکل زیر به وجود بیاید
docker run -p 30001:27017 --name mongo1 --net my-mongo-cluster mongo mongod --replSet my-mongo-set
docker run -p 30002:27017 --name mongo2 --net my-mongo-cluster mongo mongod --replSet my-mongo-set
docker run -p 30003:27017 --name mongo3 --net my-mongo-cluster mongo mongod --replSet my-mongo-set
خب حالا ما ۳ تا mongodb داریم که حالا باید یکی از آن ها رو به صورت primary انتخاب کنیم
ابتدا به وسیله کد زیر باید وارد داکر اولی بشیم و کدهای mongo shell رو وارد کنیم
docker exec -it mongo1 mongo
در خط اول در mongo shell کد زیر را وارد کنید
db = (new Mongo('localhost:27017')).getDB('test')
سپس باید یک متغیر بسازید که کانفیگ در اون قرار دارد
config = { "_id" : "my-mongo-set", "members" : [ { "_id" : 0, "host" : "mongo1:27017" }, { "_id" : 1, "host" : "mongo2:27017" }, { "_id" : 2, "host" : "mongo3:27017" } ] }
سپس کد زیر را وارد کنید
rs.initiate(config)
تبریک شما یک mongodb به صورت replica set دارید