برنامه نویسی

اجرای یک ماکت MongoDB به صورت محلی: Docker Desktop & Native Windows Setup

هنگام توسعه برنامه های مدرن ، یک پیکربندی مجموعه ماکت برای شبیه سازی محیط های تولیدی که از دسترسی و افزونگی زیاد MongoDB استفاده می کنند ، ضروری است. در این مقاله ، دو رویکرد را به اشتراک می گذارم:

استقرار یک ماکت MongoDB با استفاده از دسک تاپ Docker
اجرای یک ماکت MongoDB که به صورت بومی روی ویندوز تنظیم شده است بدون دسک تاپ Docker
هر روش بسته به محیط و محدودیت های شما شایستگی های خود را دارد.

  1. استفاده از یک ماکت MongoDB با Docker Desktop Docker راهی عالی برای چرخش سریع محیط های جدا شده است. در این بخش ، ما یک مجموعه ماکت را با استفاده از یک شبکه Docker Custom و یک فایل آهنگسازی Docker ایجاد خواهیم کرد.

مرحله 1: یک شبکه Docker ایجاد کنید

ابتدا یک شبکه Docker خارجی ایجاد کنید که تمام ظروف MongoDB به اشتراک بگذارند. ترمینال خود را باز کنید و اجرا کنید:

docker network create mongo-cluster
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: پرونده docker-compose.yml را آماده کنید

با پیکربندی زیر یک فایل docker-compose.yml ایجاد کنید. این پرونده سه سرویس را تعریف می کند – یک اولیه و دو ثانیه. هر سرویس برای اجرای با پارامتر تنظیم ماکت ( – REPLEST RS0) تنظیم شده و به همه آدرس های IP متصل می شود:

version: ‘3.8’

services:

mongo-primary:

image: mongo:latest

container_name: mongo-primary

restart: always

command: mongod — replSet rs0 — bind_ip_all

ports:

- 27017:27017

volumes:

- E:/Program Files/MongoDB/primary/data:/data/db

networks:

- mongo-cluster

mongo-secondary1:

image: mongo:latest

container_name: mongo-secondary1

restart: always

command: mongod — replSet rs0 — bind_ip_all

ports:

- 27018:27017

volumes:

- E:/Program Files/MongoDB/secondary1/data:/data/db

networks:

- mongo-cluster

mongo-secondary2:

image: mongo:latest

container_name: mongo-secondary2

restart: always

command: mongod — replSet rs0 — bind_ip_all

ports:

- 27019:27017

volumes:

- E:/Program Files/MongoDB/secondary2/data:/data/db

networks:

- mongo-cluster

networks:

mongo-cluster:

external: true
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توجه: در صورت لزوم مسیرهای حجم (e:/پرونده های برنامه/mongoDB/…) را در دایرکتوری های محلی خود تنظیم کنید.

مرحله 3: ظروف را شروع کنید

در دایرکتوری که شامل پرونده docker-compose.yml شما است ، اجرا کنید:

docker-compose up -d

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور سه ظروف را در حالت جدا شده شروع می کند.

مرحله 4: مجموعه ماکت را آغاز کنید

به ظرف اصلی وصل شوید:
دستور زیر را برای باز کردن یک جلسه تعاملی Mongo Shell (Mongosh) در داخل ظرف اصلی اجرا کنید:

docker exec -it mongo-primary mongosh
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مجموعه ماکت را شروع کنید:
در داخل پوسته ، اجرا کنید:

rs.initiate({_id: “rs0”,members: [{ _id: 0, host: “host.docker.internal:27017”},{ _id: 1, host: “host.docker.internal:27018” },{ _id: 2, host: “host.docker.internal:27019” }]});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تنظیم را تأیید کنید:
اجرا:

rs.status();

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور وضعیت مجموعه ماکت شما را نشان می دهد. پس از اجرای تأیید:

Exit
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

و به مرحله 5 بروید.

مرحله 5: پایداری داده ها را تأیید کنید

برای اطمینان از ادامه داده ها ، حجم docker خود را بررسی کنید:

docker volume ls

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

رشته اتصال

برنامه خود را با استفاده از رشته اتصال زیر وصل کنید:

mongodb://host.docker.internal:27017,host.docker.internal:27018,host.docker.internal:27019/?replicaSet=rs0

نکته: اگر Host.docker.internal نتواند در ویندوز حل شود ، ورودی زیر را به پرونده میزبان خود اضافه کنید:
127.0.0.1 host.docker.internal

  1. اجرای یک ماکت MongoDB که به صورت بومی روی ویندوز تنظیم شده است (بدون دسک تاپ Docker) اگر ترجیح می دهید یا نیاز به اجرای MongoDB به طور مستقیم روی ویندوز بدون کانتینر دارید ، این مراحل را دنبال کنید.

مرحله 1: Mongosh را بارگیری و نصب کنید

مطمئن شوید که Mongosh نصب شده اید. این پوسته به شما در مدیریت و تعامل با مجموعه ماکت خود کمک می کند.

مرحله 2: mongoDB را از طریق mongod.cfg پیکربندی کنید

برای هر نمونه MongoDB پرونده های پیکربندی جداگانه تهیه کنید. در زیر یک پیکربندی مثال (mongod.cfg) برای یک گره آورده شده است:

`

`

storage:

dbPath: C:\Program Files\MongoDB\Server\7.0\data

systemLog:

destination: file

logAppend: true

path: C:\Program Files\MongoDB\Server\7.0\log\mongod.log

net:

port: 27017

bindIp: 127.0.0.1

replication:

replSetName: “rs0”`

`
Note: Create a similar configuration file for each MongoDB instance, ensuring that the port numbers and data directories are unique (e.g., 27017, 27018, 27019).

Step 3: Start the MongoDB Instances

Run each MongoDB server instance as an administrator. You can launch them manually using a command prompt or create a batch file. For example, to run the instance on port 27017, execute:


“C:\Program Files\MongoDB\Server\7.1\bin\mongod” — config “C:\Program Files\MongoDB\Server\7.1\bin\mongod.cfg”

برای راحتی ، می توانید یک فایل .bat را با محتوای زیر ایجاد کنید:

`
Echo Off

شروع “MongoDB 7.1” “C: \ Files Program \ MongoDB \ Server \ 7.1 \ Bin \ Mongod” – پیکربندی “C: \ Files Files \ MongoDB \ Server \ 7.1 \ Bin \ Mongod.cfg”

شروع “MongoDB 7.2” “C: \ Files Program \ MongoDB \ Server \ 7.2 \ Bin \ Mongod” – پیکربندی “C: \ Files Files \ MongoDB \ Server \ 7.2 \ Bin \ Mongod.cfg”

`
*پرونده دسته ای را به عنوان مدیر اجرا کنید.
*

مرحله 4: مجموعه ماکت را به صورت دستی شروع کنید

نمونه اصلی را راه اندازی کنید:
اگر قبلاً در حال اجرا نیستید ، گره اصلی را با:
Mongod – Port 27017 – DBPath “C: \ Files Program \ MongoDB \ Server \ 7.0 \ Data” – REPEST RS0

با Mongosh ارتباط برقرار کنید:
Mongosh را به عنوان یک مدیر باز کنید و اجرا کنید:

`
Rs.Initiate ({_ id: “RS0” ، اعضا: [{ _id: 0, host: “127.0.0.1:27017” },{ _id: 1,host: “127.0.0.1:27018” },{ _id: 2, host: “127.0.0.1:27019” }]}) ؛

`
مرحله 5: به صورت اختیاری به عنوان خدمات ویندوز نصب کنید

برای یک تجربه توسعه حتی نرم تر ، می توانید هر نمونه MongoDB را به عنوان یک سرویس ویندوز نصب کنید. دستورات زیر را به عنوان مدیر اجرا کنید:

`

“C: \ Files Program \ MongoDB \ Server \ 7.1 \ Bin \ Mongod.exe” – پیکربندی “C: \ Files Files \ MongoDB \ Server \ 7.1 \ Bin \ Mongod.cfg” – نصب – ServiceName “MongoDb7.1”

“C: \ Files Program \ MongoDB \ Server \ 7.2 \ Bin \ Mongod.exe” – پیکربندی “C: \ Files Files \ MongoDB \ Server \ 7.2 \ Bin \ Mongod.cfg” – نصب – ServiceName “MongoDb7.2”
`

سپس خدمات را با: ثبت کنید:

`
sc.exe ایجاد “mongodb7.1” binpath = “\” c: \ files program \ mongoDB \ سرور \ 7.1 \ bin \ mongod.exe \ ” – سرویس – پیکربندی = \” c: \ files برنامه \ mongoDB \ سرور \ 7.1 \ bin \ mongod.cfg \ “start”

sc.exe ایجاد “mongoDb7.2” binpath = “\” c: \ files program \ mongoDb \ سرور \ 7.2 \ bin \ mongod.exe \ ” – سرویس – پیکربندی = \” c: \ برنامه های برنامه \ mongoDB \ سرور \ 7.2 \ bin \ mongod.cfg \ «start”
`

در آخر ، خدمات را شروع کنید:

`
شروع خالص MongoDb7.1

شروع خالص MongoDb7.2
`

توجه: اجرای MongoDB به عنوان یک سرویس ویندوز ممکن است برخی از چالش ها را ایجاد کند. این گزینه را بر اساس نیازهای پروژه خود ارزیابی کنید.

پایان

هر دو روش شما را قادر می سازد یک ماکت MongoDB را به صورت محلی برای آزمایش و توسعه اجرا کنید:

Docker Desktop: یک محیط جدا شده و کانتینر شده را فراهم می کند که از نزدیک از استقرار ابر آینه می کند. تنظیم سریع و مناسب برای تنظیمات چند گره بدون آلاینده سیستم میزبان شما است.
Setup Native Windows: یک رویکرد سنتی تر را ارائه می دهد ، به ویژه هنگامی که کانتینر سازی گزینه ای نیست. در این روش از پرونده های پیکربندی ، دستورالعمل های خط فرمان و نصب سرویس ویندوز اختیاری استفاده می شود.
با درک و استفاده از این رویکردها ، می توانید برنامه هایی را که به ویژگی های مجموعه ماکت MongoDB بستگی دارد ، توسعه داده و آزمایش کنید.

برنامه نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا