محمد پویا آذران مهر
محمد پویا آذران مهر
خواندن ۲ دقیقه·۵ سال پیش

چگونه توسط docker برای دیتابیس mongodb سیستم replica set راه اندازی کنیم

در این پست میخوایم در مورد replica set صبحت کنیم

در بحث replica set شما می تونید یک دیتابیس اصلی یا primary داشته باشید و همینطوری چندین دیتابیس ثانویه یا secondary که شما عملیات های read و write را روی دیتابیس primary انجام میدید و عملیات های readOnly را فقط روی دیتابیس های ثانویه انجام میدید

که این خب باعث افزایش سرعت و عملکرد بخش های داده کاوی در پنل های مدیریت هم میشه

خب حالا چطوری باید اینکارو بکنیم خیلی سادس :)

ابتدا docker را روی سیستم خود باید نصب داشته باشید

سپس به صورت زیر دستورات docker را وارد کنید تا معماری شکل زیر به وجود بیاید

معماری mongodb replica set
معماری mongodb replica set


https://virgool.io/p/cjg0nixx6rbd/dockernetworkcreatemy-mongo-cluster

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 دارید


mongodbdocker
Cofounder and CTO of Talarname
شاید از این پست‌ها خوشتان بیاید