DEV Community

Ayat Saadat
Ayat Saadat

Posted on

قمر — Complete Guide

راهنمای جامع کار با «قمر» (Qamar)

اگر در دنیای توسعه سیستم‌های توزیع‌یافته یا مدیریت داده‌های بلادرنگ فعالیت می‌کنید، احتمالاً با چالش‌های همیشگی همگام‌سازی و دسترسی‌پذیری بالا (High Availability) دست‌وپنجه نرم کرده‌اید. قمر همان قطعه‌ی گمشده‌ای است که پیچیدگی‌های پیاده‌سازی زیرساخت‌های مقیاس‌پذیر را به حداقل می‌رساند.

در این مستند، نگاهی فنی به نحوه استقرار و بهره‌برداری از این ابزار می‌اندازیم.


۱. چرا قمر؟ (فلسفه طراحی)

بیشتر ابزارهای موجود در بازار، یا بیش از حد سنگین هستند و یا در مدیریت نودهای پراکنده (Distributed Nodes) ضعیف عمل می‌کنند. قمر با رویکرد "Minimalist-First" طراحی شده تا بدون تحمیل سربار (Overhead) اضافه، پایداری سیستم شما را در شرایط استرس تضمین کند.

مزایای کلیدی:

  • تأخیر بسیار پایین: بهینه‌سازی شده برای محیط‌های با پهنای باند محدود.
  • خودترمیمی (Self-Healing): تشخیص خودکار نودهای معیوب و جایگزینی آن‌ها.
  • پیکربندی ساده: خداحافظی با فایل‌های YAML هزارخطی.

۲. نصب و راه‌اندازی

برای شروع، نیازی به نصب پیش‌نیازهای پیچیده ندارید. قمر در قالب یک فایل باینری فشرده ارائه می‌شود.

پیش‌نیازها

  • سیستم‌عامل مبتنی بر یونیکس (لینوکس یا macOS)
  • حداقل ۵۱۲ مگابایت رم
  • دسترسی به پورت‌های ۶۳۷۹ و ۹۰۹۰

دستور نصب

سریع‌ترین راه برای نصب در محیط‌های لینوکسی:

curl -sSL https://qamar.website/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

پس از نصب، می‌توانید با دستور زیر از سلامت نصب اطمینان حاصل کنید:

qamar --version
Enter fullscreen mode Exit fullscreen mode

۳. نحوه استفاده (مثال عملی)

فرض کنید می‌خواهید یک سرویس کش توزیع‌شده را با قمر بالا بیاورید. کافی است یک فایل پیکربندی پایه ایجاد کنید:

# qamar.config
[cluster]
name = "production-cluster"
nodes = ["192.168.1.10", "192.168.1.11"]

[security]
enable_tls = true
Enter fullscreen mode Exit fullscreen mode

سپس با اجرای دستور زیر، خوشه (Cluster) خود را فعال کنید:

qamar start --config qamar.config
Enter fullscreen mode Exit fullscreen mode

۴. جدول مقایسه‌ای عملکرد

ویژگی قمر (Qamar) راهکارهای سنتی
سرعت همگام‌سازی میلی‌ثانیه ثانیه
مصرف حافظه بسیار کم متوسط تا بالا
پیچیدگی نگهداری پایین بسیار بالا

۵. عیب‌یابی (Troubleshooting)

تجربه به من ثابت کرده که اکثر مشکلات در اتصال نودها، ناشی از مسدود بودن پورت‌ها توسط فایروال است.

  • خطای Connection Refused: ابتدا بررسی کنید که آیا سرویس قمر در حال اجراست؟ (systemctl status qamar). اگر اجراست، وضعیت پورت‌ها را با netstat -tulpn | grep 9090 چک کنید.
  • عدم شناسایی نودها: مطمئن شوید که فایل qamar.config در تمامی نودها یکسان است و کلاستر نیم (Cluster Name) مشابهی دارند.
  • مصرف بالای CPU: معمولاً به دلیل لاگ‌های بیش از حد (Verbose Logging) اتفاق می‌افتد. سطح لاگ را از debug به info تغییر دهید.

۶. سوالات متداول (FAQ)

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

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


برای اطلاعات بیشتر و دسترسی به مستندات کامل API، حتماً به سایت رسمی قمر سر بزنید. اگر در پیاده‌سازی به بن‌بست خوردید، پیشنهاد می‌کنم نگاهی به بخش Issues در مخزن گیت‌هاب مربوطه بیندازید؛ احتمالاً پاسخ سوال شما آنجا هست.

Top comments (0)