پرش به مطلب اصلی

سرویس PgBouncer

PgBouncer یک واسط سبک میان برنامه و PostgreSQL است که اتصال‌های برنامه را دریافت می‌کند و اتصال‌های سمت دیتابیس را دوباره به کار می‌گیرد. این کار برای برنامه‌هایی که تعداد زیادی اتصال کوتاه‌مدت می‌سازند مفید است. PgBouncer جایگزین PostgreSQL نیست؛ پیش از استفاده از آن باید یک پایگاه داده PostgreSQL در دسترس داشته باشید.

راه‌اندازی در چابکان​

  1. در پنل چابکان محصول PgBouncer را ایجاد کنید.
  2. مشخصات اتصال PostgreSQL مقصد را در تنظیمات محصول وارد کنید. نام میزبان، پورت، نام دیتابیس، نام کاربری و رمز عبور را از سرویس PostgreSQL مقصد بردارید.
  3. پس از آماده‌شدن PgBouncer، میزبان و پورت خود PgBouncer را از صفحهٔ محصول کپی کنید.
  4. در تنظیمات برنامه، میزبان و پورت اتصال را به PgBouncer تغییر دهید و نام دیتابیس و اعتبارنامهٔ مجاز را مطابق تنظیمات محصول وارد کنید.
  5. یک درخواست ساده از برنامه اجرا کنید و اتصال موفق را در برنامه و لاگ‌های سرویس بررسی کنید.

برای ساخت PostgreSQL در چابکان، راهنمای سرویس PostgreSQL را ببینید. نشانی و پورت PgBouncer ممکن است با PostgreSQL مقصد متفاوت باشد؛ مقادیر را از پنل همان محصول کپی کنید.

انتخاب حالت Pooling​

PgBouncer سه حالت اصلی دارد:

  • Session: اتصال سمت PostgreSQL تا پایان نشست کاربر در اختیار همان کاربر می‌ماند. این حالت بیشترین سازگاری را با ویژگی‌های PostgreSQL دارد.
  • Transaction: اتصال پس از پایان هر تراکنش به مخزن برمی‌گردد. برای تعداد زیاد اتصال کوتاه‌مدت مفید است، ولی قابلیت‌هایی که به وضعیت نشست وابسته‌اند باید جداگانه آزمایش شوند.
  • Statement: اتصال پس از هر دستور آزاد می‌شود و برای تراکنش‌های چنددستوری مناسب نیست.

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

عیب‌یابی​

نشانهبررسی
برنامه متصل نمی‌شودمیزبان و پورت PgBouncer را با مشخصات خود PostgreSQL اشتباه نگیرید؛ اعتبارنامه و دسترسی شبکه را بررسی کنید.
اتصال برقرار است ولی بعضی درخواست‌ها خطا دارندحالت Pooling و وابستگی برنامه به وضعیت نشست را بررسی کنید.
درخواست‌ها در صف می‌مانندظرفیت PostgreSQL، شمار اتصال‌های فعال و تنظیمات مخزن اتصال را بررسی کنید.

منبع: مستندات رسمی PgBouncer