بالابردن تحمل خطا در مونگو

چنانچه داده های شرکت شما حساس بوده و مثلا حتی اگر یک ساعت دیتابیس شما از کار بیفتد، مقدار زیادی ضرر می کنید پس حتما باید دیتابیسی که کانفیگ میکنید، دارای بکاپ آنلاین از داده ها باشد.

منظورم از بکاپ آنلاین این است که هر عملیاتی که دیتابیس شما را تغییر میدهد، این تغییرات بایستی درسرورهای دیگر شما نیز اعمال شوند تا اگر چنانچه سرور اصلی دیتابیس شما، از شبکه خارج شد، سرورهای دیگر بتوانند کار را جلو ببرند.

در مونگو، به این نوع از کانفیگ دیتابیس، اصطلاح replicaSet را نسبت میدهند.

به عکس زیر دقت کنید:

رپلیکاست در مونگو
رپلیکاست در مونگو


در واقع کلاینت شما، درخواست های خود را به primary server ارسال میکند، اما تغییراتی که روی primary server انجام میشود، به صورت آنلاین روی 2 سرور دیگر که از نوع secondary هستند، اعمال می‌شود.

اگر داشتن 2 عدد Secondary سرور برای شما هزینه بر هست، میتوانید به جای secondary دوم، از یک arbiter استفاده کنید تا در هنگام ا زدست رفتن سرور primary به مشکل بر نخورید.

موضوع سرور arbiter رو هم در لینک زیر در قسمت شماره 2، کاملا توضیح دادم که میتونید ملاحظه کنید.

دوره پیشرفته MongoDB

استفاده از رپلیکاست در دیتابیس مونگو 2 تا مزیت خوب داره:

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

دوما باعث میشه تا بکاپ آنلاین از داده ها داشته باشید...

یک نکته جالب:

اگر هزینه ی راه اندازی 3 عدد سرور یا حتی 2 عدد سرور رو ندارید، باز هم بهتره از رپلیکاست استفاده کنید.

دلیلش هم اینه که درسته که شما از قابلیت بکاپ آنلاین داده ها بهره مند نخواهید شد اما حداقل میدونیم که میتونیم با همون یک سروری که از نوع Primary هست، ترنزکشن رو انجام بدیم.

پس پیشنهاد میکنم در هر صورتی، سرویس mongod خودتون رو به صورت ReplicaSet کانفیگ کنید و در محیط عملیاتی جدا از کانفیگ معمولی جلوگیری کنید.

باز نحوه کانفیگ رپلیکاست رو هم در سایت MongoDB توضیح داده و من هم اون رو در ویدیوی زیر توضیح دادم خدمتتون...

ویدیوی پیاده سازی ReplSet با یک Primary و دو Secondary

مستندات سایت MongoDB