تخطَّ إلى المحتوى
kazma.
EN نجمة 6 ابدأ الآن

تعدد المناطق والتوافر العالي

نشر تعدد المناطق / تعدد النسخ

Section titled “نشر تعدد المناطق / تعدد النسخ”

تدعم كاظمه النسخ المتماثلة الأفقية عندما تعيش كل الحالة المشتركة في Postgres.

┌─────────────┐
Users ────────►│ Load Balancer│ health: GET /health/ready
└──────┬──────┘
┌─────────────┼─────────────┐
▼ ▼ ▼
Kazma-1 Kazma-2 Kazma-N
│ │ │
└─────────────┼─────────────┘
▼
Managed Postgres (HA)
(settings, sessions, tasks, checkpoints)

المتطلبات (متطابقة في كل منطقة / نسخة متماثلة)

Section titled “المتطلبات (متطابقة في كل منطقة / نسخة متماثلة)”
متغير البيئةمتطابق عبر النسخ المتماثلة؟
KAZMA_DATABASE_URLنعم (عنقود قواعد أساسي واحد)
KAZMA_SECRETنعم (أو OIDC فقط)
KAZMA_VAULT_KEYنعم
KAZMA_PUBLIC_URLعنوان HTTPS عام (لأجل OIDC)
SQLite المحلي في kazma-dataعرض compose التجريبي للتوافر العالي يشارك وحدة تخزين kazma_data (الذاكرة/cron/الخزنة/المستندات). ‏SQLite WAL + busy_timeout=5000 هي قصة التزامن — وليست توافرًا عاليًا كاملًا. فضِّل كاتبًا واحدًا، أو أبقِ --scale عند 2.

عرض توضيحي محلي لتعدد النسخ

Section titled “عرض توضيحي محلي لتعدد النسخ”
Terminal window
# .env must set KAZMA_SECRET and KAZMA_VAULT_KEY
docker compose -f docker-compose.ha.yml --profile nginx up -d --build --scale kazma=2
curl -s http://127.0.0.1:9090/health/ready | jq .
  1. انشر Postgres أساسيًا واحدًا (متعدد مناطق التوافر multi-AZ) مع نسخ احتياطي آلي + PITR.
  2. انشر كاظمه خدمةً في كل منطقة (أو منطقة واحدة + CDN).
  3. وجِّه فحوص صحة موازن الأحمال إلى /health/ready ‏(503 = إزالة من المجموعة).
  4. استخدم الجلسات اللاصقة فقط إن كنت تُبقي حالة محلية زائلة؛ وبعد التحويل إلى Postgres يصبح اللصوق اختياريًا.
  5. الوضع نشط-نشط عبر المناطق بقاعدتي كتابة غير مدعوم — استخدم أساسي كتابة واحدًا (أو منتج قواعد متعدد الأساسيات تُشغّله أنت بالكامل).
الطبقةالإجراء
موت نسخة متماثلة للتطبيقيتوقف موازن الأحمال عن التوجيه بعد فشل /health/ready
فشل أساسي Postgresتجاوز فشل مُدار (RDS/Cloud SQL)؛ تعيد التطبيقات الاتصال عبر مجمّع الاتصالات
فقد منطقةحوِّل DNS إلى تطبيقات المنطقة الثانوية التي ما زالت تشير إلى PG سليم

انظر أيضًا: SAAS_AND_POSTGRES.md, DISASTER_RECOVERY.md.