✅ أفضل الممارسات
اتبع هذه التوصيات للحصول على أكثر توصيل shreds موثوقية وأقل تأخيراً من ShredStream.com.
تستخدم SDK الخاص بنا؟ يُعد SDK buffer استقبال socket تلقائياً (25 ميغابايت افتراضياً) ويتولى التحقق من الحزم. لا تزال بحاجة لتكوين إعدادات sysctl على مستوى نظام التشغيل أدناه ويمكنك الاستفادة من توصيات المراقبة والتكرار.
📐 حجم buffer UDP
التغيير الأكثر تأثيراً في التكوين هو زيادة buffer استقبال UDP. يمكن لـ ShredStream.com توصيل آلاف الـ shreds في الثانية، وbuffer نظام التشغيل الافتراضي صغير جداً.
عيّن حداً أدنى 25 ميغابايت:
# Apply immediately (Linux)sudo sysctl -w net.core.rmem_max=26214400sudo sysctl -w net.core.rmem_default=26214400# Persist across reboots — add to /etc/sysctl.confnet.core.rmem_max=26214400net.core.rmem_default=26214400
ثم اطلب حجم buffer في كود تطبيقك:
import socketsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 25 * 1024 * 1024)sock.bind(("0.0.0.0", 8001))
ملاحظة حول مضاعفة buffer في Linux: يُضاعف Linux داخلياً قيمة buffer التي تُمررها لـ
setsockopt(). عند طلب 25 ميغابايت، يُخصص النواة 50 ميغابايت (نصفها للبيانات ونصفها لحفظ سجلات النواة). يجب أن يكونrmem_maxفي sysctl 25 ميغابايت على الأقل لنجاح الطلب.
🔄 التكرار والتجاوز عند الفشل
لأنظمة الإنتاج حيث وقت التشغيل حرج، خطط للتكرار.
- بثوث متعددة المناطق -- أنشئ بثوثاً في منطقتين أو أكثر. إذا واجهت منطقة مشكلة، تستمر الأخرى بالتوصيل. أزل التكرارات من الـ shreds الواردة باستخدام زوج (slot, index) لتجنب معالجة نفس البيانات مرتين.
- خوادم احتياطية ساخنة -- شغّل مستقبلاً ثانياً على جهاز مختلف. يمكن لكليهما الاستماع في نفس الوقت؛ يُزيل خط المعالجة التكرارات لاحقاً.
- تجاوز IP عند الفشل -- استخدم IP عائماً أو Elastic IP يمكن إعادة تعيينه بسرعة. حدّث وجهة البث من لوحة التحكم عند نقل حركة المرور إلى خادم احتياطي.
✅ قائمة التحقق الملخصة
- buffer استقبال UDP مُعيَّن على 25 ميغابايت أو أعلى
- Socket مربوط بـ
0.0.0.0، وليس127.0.0.1 - خيط الاستقبال معزول عن منطق المعالجة
- بثوث احتياطية في مناطق متعددة (لأحمال العمل الإنتاجية)