المقدمة

Workerman، حاوية تطبيقات PHP عالية الأداء

ما هو Workerman؟

Workerman هو حاوية تطبيقات PHP مفتوحة المصدر تم تطويرها بلغة PHP، وتتميز بأدائها العالي.

Workerman ليس إعادة اختراع العجلة، فهو ليس إطار عمل MVC، بل هو إطار عمل خدماتي أكثر أساسية وعمومية، يمكنك استخدامه لتطوير وكيل TCP، أو وكيل شجرة، أو لإنشاء خوادم الألعاب، أو خوادم البريد، أو خوادم FTP، أو حتى تطوير نسخة PHP من Redis، أو قاعدة بيانات بصيغة PHP، أو نسخة PHP من Nginx، أو PHP-FPM، وغيرها. يمكن وصف Workerman بأنه ابتكار في مجال PHP، حيث يحرر المطورين من قيود PHP التي كانت تقتصر على الويب فقط.

في الواقع، يشبه Workerman Nginx نسخة PHP، حيث يقوم على مبدأ تعدد العمليات + Epoll + IO غير المتزامن. يمكن لكل عملية من Workerman الحفاظ على آلاف الاتصالات المتزامنة. نظرًا لأنه يبقى في الذاكرة بشكل دائم، فإنه لا يعتمد على Apache أو Nginx أو PHP-FPM، مما يمنحه أداءً فائقًا. كما يدعم TCP، UDP، UNIXSOCKET، ويدعم الاتصالات الطويلة، ويدعم Websocket، HTTP، WSS، HTTPS، وغيرها من بروتوكولات الاتصال وتعليمات مخصصة. يتمتع أيضًا بمؤقتات، عملاء مقبس غير متزامن، Redis غير متزامن، HTTP غير متزامن، قائمة انتظار رسائل غير متزامنة، والعديد من المكونات عالية الأداء الأخرى.

بعض مجالات تطبيق Workerman

Workerman مختلف عن إطارات MVC التقليدية، حيث يمكن استخدامه ليس فقط في تطوير الويب، ولكن لديه أيضًا مجالات تطبيق واسعة مثل الاتصالات الفورية، إنترنت الأشياء، ألعاب الفيديو، إدارة الخدمات، وخوادم أو وسائط أخرى، وهذا يعزز بلا شك من آفاق مطوري PHP. حاليًا، هناك نقص حاد في مطوري PHP في هذه المجالات، وإذا كنت تسعى لتحقيق ميزة تقنية في مجال PHP، أو تود الانتقال نحو الاتجاه المعماري أو المهارات التقنية المتقدمة، فإن Workerman يعد إطارًا قيمًا جديرًا بالتعلم. يُنصح المطورون بعدم الاكتفاء باستخدامه، بل العمل على تطوير مشاريع مفتوحة المصدر تعتمد على Workerman، مما يعزز مهاراتهم وزيادة تأثيرهم، مثل مشروع Beanbun إطار الزحف الشبكي متعدد العمليات الذي حصل على الكثير من التقييمات الجيدة منذ انطلاقه.

تتضمن بعض مجالات تطبيق Workerman ما يلي:

  1. الاتصالات الفورية
    على سبيل المثال، الدردشة الفورية عبر الويب، الإشعارات الفورية، تطبيقات WeChat الصغيرة، دفع الإشعارات لتطبيقات الهاتف، دفع الرسائل لبرامج الكمبيوتر، وغيرها.
    [مثال workerman-chat غرفة الدردشة ، دفع الرسائل عبر الويب ، غرفة الدردشة الصغيرة]

  2. إنترنت الأشياء
    على سبيل المثال، اتصالات Workerman مع الطابعات، مع وحدات التحكم الدقيقة، الأساور الذكية، المنازل الذكية، الدراجات المشتركة، وغيرها.
    [حالات العملاء مثل Yi Lian Yun وY停车时代]

  3. خوادم الألعاب
    مثل ألعاب الورق، ألعاب MMORPG، وغيرها. [مثال browserquest-php]

  4. خدمات HTTP
    مثل كتابة واجهات HTTP عالية الأداء، مواقع ويب عالية الأداء. إذا كنت ترغب في إنشاء خدمات أو مواقع مرتبطة بـ HTTP، يُنصح بشدة بـ webman

  5. تحويل الخدمات إلى SOA
    باستخدام Workerman، يمكنك تجميع وحدات الوظائف، وتوفير واجهات موحدة للخارج، مما يجعلك تحصل على نظام مفكوك الانCoupling، سهل الصيانة، عالي التوافر، سهل التوسع. [مثال workerman-json-rpc، workerman-thrift]

  6. برامج خوادم أخرى
    مثل GatewayWorker، PHPSocket.IO، وكيل HTTP، وكيل SOCKS5، مكون اتصالات موزع، مكون مشاركة المتغيرات الموزعة، قائمة انتظار الرسائل، خادم DNS، خادم الويب، خادم CDN، خادم FTP، وغيرها.

  7. المكونات
    مثل Redis غير المتزامن، عميل http غير المتزامن، عميل MQTT لإنترنت الأشياء، قائمة انتظار الرسائل workerman/redis-queue ، workerman/stomp، workerman/rabbitmq ، مكون مراقبة الملفات، والعديد من المكونات الأخرى التي تم تطويرها بواسطة طرف ثالث.

من الواضح أن الإطارات التقليدية MVC سيكون من الصعب تحقيق الوظائف المذكورة أعلاه، لذا كان ذلك سبب نشأة Workerman.

مبادئ Workerman

بسيط، ثابت، عالي الأداء، موزع.

بسيط

البساطة هي الجمال، نواة Workerman بسيطة للغاية، تحتوي فقط على عدة ملفات PHP وتعرض فقط بضع واجهات، مما يجعل التعلم أمرًا سهلاً للغاية. يتم توسيع كافة الميزات الأخرى عن طريق المكونات.

يمتلك Workerman وثائق شاملة + صفحة رئيسية موثوقة + مجتمع نشط + عدة مجموعات QQ تحتوي على الآلاف من الأعضاء + العديد من المكونات عالية الأداء + أمثلة عديدة، كل ذلك يجعل استخدامه أكثر سهولة للمطورين.

ثابت

لقد تم إطلاق Workerman كمصدر مفتوح لعدة سنوات، وتم استخدامه بشكل كبير من قبل العديد من الشركات المدرجة، وهو ثابت للغاية. هناك خدمات لم يتم إعادة تشغيلها لأكثر من عامين وما زالت تعمل بسرعة. لا يوجد قفل أساسي، لا تسرب للذاكرة، لا أخطاء.

عالي الأداء

نظرًا لأن Workerman يبقى في الذاكرة، ولا يعتمد على Apache/Nginx/PHP-FPM، فإنه لا يحتوي على تكاليف الاتصال بين الحاوية وPHP، ولا تكاليف تهيئة كل طلب ثم تدميره، مما يمنحه أداءً فائقًا. بالمقارنة مع إطارات MVC التقليدية، فإن أدائه أعلى بعدة مرات، وتحت ضغط اختبار QPS في PHP7، حتى يتجاوز الخادم Nginx المستقل.

موزع

لم يعد عصر العمل الفردي، مهما كانت قوة خادم واحد، فإنه وحده لديه حدود، إن نشر خدمات موزعة عبر خوادم متعددة هو السبيل. يقدم Workerman مجموعة جاهزة من حلول الاتصالات الموزعة عبر الاتصال الطويل إطار عمل GatewayWorker، كل ما تحتاجه هو إعداد بسيط وتشغيله، دون الحاجة لتغيير أكواد العمل، مما يزيد من قدرة النظام على التحمل بشكل كبير. إذا كنت مطورًا لتطبيقات اتصال TCP طويل، فإنه يُنصح باستخدام GatewayWorker مباشرةً، حيث أنه عبارة عن تغليف لـ Workerman، حيث يوفر واجهات أغنى وقدرة معالجة موزعة قوية.

نطاق عمل هذه الوثيقة

إصدارات Workerman 3.x - 5.x

مستخدمي Windows (يجب قراءته)

يدعم Workerman أنظمة Linux ونظام Windows. إصدار Windows من Workerman لا يعتمد على أي امتدادات، كل ما عليك فعله هو تكوين متغير بيئة PHP، للحصول على مزيد من المعلومات حول تثبيت وإجراءات Windows، يُرجى الرجوع إلى مستخدمو Windows يجب عليهم القراءة.

العميل

بروتوكول الاتصال الخاص بـ Workerman مفتوح وقابل للتخصيص، لذا، نظريًا، يمكن لـ Workerman الاتصال بأي عميل يستخدم أي بروتوكول على أي منصة. عندما يقوم المستخدمون بتطوير عميل، يمكنهم إتمام الاتصال مع الخادم بناءً على البروتوكول المناسب.