🚀 تخفیف ۳۵٪ + ۳.۵ میلیون هدیه! برنامه‌نویسی رو الان شروع کن - فقط امروز!
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ صادق
معماری سیستم
مسعود کاویانی حل شده توسط مسعود کاویانی

سلام
شما گفتین PGPool رو  باید روی نود master  بالا بیاریم 
خب فرض کنین سرور مستر کلا اتیش بگیره ما هر چی اسلیو داریم کلا بلا استفاده میشه چون PGpool مستر هم قطع میشه 
درست‌تر نیست برای PGPool یه سرور جدا داشته باشیم مثلا سرور ابرای جدا ک در صورت قطع شدن مستر حداقل ریکوست‌های read رو بتونیم به اسلیو‌ها بفرستیم؟

سلام

کاملاً درست متوجه شدید:
اگر PGPool فقط روی سرور master نصب بشه و اون سرور از دسترس خارج بشه (مثلاً سوختن فیزیکی، قطعی برق، مشکل شبکه و…)، عملاً حتی اگر همه اسلیوها سالم باشن، کلاستر شما برای کلاینت‌ها از دسترس خارج میشه.
این یعنی همه درخواست‌ها (چه read و چه write) به PGPool وصل میشن و اگر PGPool نباشه، هیچ ریکوئستی نمی‌تونه به هیچ نودی برسه.

 

توصیه حرفه‌ای برای استقرار PGPool

بهترین و امن‌ترین حالت:

PGPool رو روی یک یا چند سرور جدا و مستقل از سرورهای دیتابیس (هم master هم slave) نصب کنید.

  • حتی می‌تونید PGPool رو به صورت Highly Available (HA) راه‌اندازی کنید (مثلاً با Keepalived یا Pacemaker یا راه‌حل‌های مشابه).
  • اگر PGPool روی یک سرور ابری مجزا باشه، حتی با از دست رفتن master، هنوز می‌تونید درخواست‌های read رو به اسلیوها بفرستید و اگر failover داشتید، به نود جدید master هم درخواست write ارسال بشه.

 

معماری پیشنهادی (برای جلوگیری از SPOF):

  1. PGPool روی یک یا چند سرور مستقل (مثلاً سرور ابری یا VM جداگانه)
  2. تنظیم Health Check و Failover در PGPool برای شناسایی وضعیت master و slaveها
  3. (اختیاری) راه‌اندازی Load Balancer جلوی PGPool برای HA بیشتر

 

 

بهترین پاسخ
مسعود کاویانی ۲۹ تیر ۱۴۰۴، ۲۱:۲۶