أساسيات النشر
هذا الدليل يشرح كيفية نشر عمليات الكتابة والقراءة لـ Asset Core على عقدة واحدة مع تخزين دائم.
المتطلبات المسبقة
- تم بناء ملفات Asset Core الثنائية (
cargo build --release) - دليل قابل للكتابة لسجل الالتزام ونقاط التحقق
- المنافذ 8080 و 8081 متاحة (أو بدائل)
الخطوة 1 - إعداد الأدلة
إنشاء دلائل لحالة دائمة:
mkdir -p /var/lib/assetcore/{logs,checkpoints}
سوف يتم تخزين سجل الالتزام ونقاط التحقق هنا.
الخطوة 2 - تكوين خدمة الكتابة
إنشاء ملف تكوين write.toml:
إرشادات إضافية:
[server]
listen = "0.0.0.0:8080"
[commit_log]
path = "/var/lib/assetcore/logs/commit_log.log"
checkpoint_path = "/var/lib/assetcore/checkpoints/write.checkpoint.json"
flush_interval_ms = 100
[ingress]
queue_capacity = 1000
precheck_workers = 4
max_inflight_commits = 100
الإعدادات الرئيسية:
إرشادات إضافية:
| الإعدادات | الوصف |
|---|---|
listen | العنوان والمنفذ للربط |
commit_log.path | مكان تخزين سجل الأحداث |
flush_interval_ms | مدى تكرار fsync (أقل = أكثر متانة) |
precheck_workers | عمال التحقق المتوازيين |
الخطوة 3 - تكوين عملية القراءة
أنشئ ملف تكوين read.toml أو استخدم وسائط سطر الأوامر:
[server]
listen = "0.0.0.0:8081"
[tail]
commit_log = "/var/lib/assetcore/logs/commit_log.log"
checkpoint = "/var/lib/assetcore/checkpoints/read.checkpoint.json"
poll_interval_ms = 10
يجب أن يشير خادم القراءة إلى نفس سجل الالتزام مثل خادم الكتابة.
الخطوة 4 - بدء عملية الكتابة
./target/release/assetcored-write --config write.toml
تحقق من أنه يعمل:
إرشادات إضافية:
curl http://localhost:8080/v1/health
متوقع: {"status": "healthy", ...}
الخطوة 5 - بدء عملية القراءة
إرشادات إضافية:
./target/release/assetcored-read \
--listen 0.0.0.0:8081 \
--commit_log /var/lib/assetcore/logs/commit_log.log \
--checkpoint /var/lib/assetcore/checkpoints/read.checkpoint.json
تحقق من أنه يعمل:
إرشادات إضافية:
curl http://localhost:8081/v1/health
الخطوة 6 - تحقق من الاتصال من النهاية إلى النهاية
أرسل التزام اختبار:
curl -X POST http://localhost:8080/v1/commit \
-H "Content-Type: application/json" \
-d '{
"operations": [
{"op": "CreateContainer", "args": {"container_id": 1, "kind": "Standard"}}
]
}'
اقرأها مرة أخرى:
curl http://localhost:8081/v1/read/container/1
استكشاف الأخطاء وإصلاحها
”العنوان مستخدم بالفعل”
عملية أخرى تستخدم المنفذ. إما أن توقف تلك العملية أو تغير عنوان listen.
”تم رفض الإذن” في سجل الالتزام
لا يمتلك المستخدم الذي يقوم بتشغيل الـ daemon حق الوصول للكتابة إلى الدليل. تحقق من الملكية:
chown -R assetcore:assetcore /var/lib/assetcore
يظهر برنامج الـ daemon بيانات قديمة
تحقق من نقطة نهاية الانتعاش:
إرشادات إضافية:
curl http://localhost:8081/v1/read/freshness
إذا كان checkpoint_seq متأخراً عن commit_log_seq، فإن خدمة القراءة تتعقب. راقب مقياس التأخير.
استعادة من الأعطال
كلا الخادمين يستعيدان تلقائيًا من نقاط التحقق الخاصة بهما عند إعادة التشغيل. لا حاجة لتدخل يدوي.
الخطوات التالية
- الصحة والمقاييس - مراقبة نقاط النهاية
- CLI Reference - استخدام acctl للعمليات