प्रस्तावना

Workerman, उच्च प्रदर्शन PHP एप्लिकेशन कंटेनर

Workerman क्या है?

Workerman एक शुद्ध PHP में विकसित ओपन-सोर्स उच्च प्रदर्शन PHP एप्लिकेशन कंटेनर है।

Workerman पहिये को फिर से बनाने वाला नहीं है, यह एक MVC ढांचा नहीं है, बल्कि एक अधिक निचले स्तर का और सामान्य सेवा ढांचा है, जिसका उपयोग आप TCP प्रॉक्सी, सीढ़ी प्रॉक्सी, गेम सर्वर, ईमेल सर्वर, FTP सर्वर, यहां तक कि एक PHP संस्करण के Redis, PHP संस्करण के डेटाबेस, PHP संस्करण के nginx, PHP संस्करण के php-fpm आदि विकसित करने के लिए कर सकते हैं। इसे PHP क्षेत्र में एक नवाचार के रूप में देखा जा सकता है, जिसने डेवलपर्स को PHP को केवल वेब के लिए प्रतिबंधित करने से पूरी तरह मुक्त कर दिया है।

वास्तव में Workerman एक PHP संस्करण के nginx के समान है, इसका मूल मल्टीप्रोसेसिंग + Epoll + नॉन-ब्लॉकिंग IO है। Workerman का प्रत्येक प्रोसेस हजारों समवर्ती कनेक्शनों को बनाए रख सकता है। चूंकि यह स्वयं मेमोरी में रहता है, यह Apache, nginx, php-fpm जैसे कंटेनरों पर निर्भर नहीं है, और इसके पास उच्चतम प्रदर्शन है। यह TCP, UDP, UNIXSOCKET का समर्थन करता है, लंबे कनेक्शन का समर्थन करता है, Websocket, HTTP, WSS, HTTPS और अन्य संचार प्रोटोकॉल के साथ-साथ विभिन्न कस्टम प्रोटोकॉल का समर्थन करता है। जिसमें टाइमर, असिंक्रोनस सॉकेट क्लाइंट, असिंक्रोनस Redis, असिंक्रोनस Http, असिंक्रोनस मैसेज 큐 के कई उच्च प्रदर्शन घटक शामिल हैं।

Workerman के कुछ अनुप्रयोग दिशाएँ

Workerman पारंपरिक MVC ढांचे से भिन्न है, Workerman का उपयोग केवल वेब विकास के लिए ही नहीं किया जा सकता, बल्कि इसके पास अधिक व्यापक अनुप्रयोग क्षेत्र हैं, जैसे तात्कालिक संचार, इंटरनेट ऑफ थिंग्स, गेम, सेवा प्रशासन, अन्य सर्वर या मध्यस्थता, जो निस्संदेह PHP डेवलपर्स के दृष्टिकोण को काफी बढ़ाता है। वर्तमान में, इन क्षेत्रों में PHP डेवलपर्स की कमी है, यदि आप PHP के क्षेत्र में अपनी तकनीकी श्रेष्ठता रखना चाहते हैं, तो हर दिन की CRUD कार्यों पर संतुष्ट नहीं हैं, या आर्किटेक्ट या तकनीकी विशेषज्ञ के रूप में विकसित होना चाहते हैं, तो Workerman एक ऐसा ढांचा है जिसे सीखना बहुत महत्वपूर्ण है। डेवलपर्स को न केवल इसका उपयोग करना चाहिए, बल्कि Workerman के आधार पर अपने स्वयं के ओपन-सोर्स प्रोजेक्ट विकसित करने में सक्षम होना चाहिए, कौशल में वृद्धि करनी चाहिए और अपनी प्रभावशीलता को बढ़ाना चाहिए, जैसे Beanbun मल्टीप्रोसेस नेटवर्क क्रॉलर फ्रेमवर्क एक अच्छा उदाहरण है, जो थोड़े समय में कई सकारात्मक समीक्षाएँ प्राप्त कर चुका है।

Workerman के कुछ अनुप्रयोग दिशाएँ इस प्रकार हैं:

  1. तात्कालिक संचार
    उदाहरण के लिए वेब चैट, तात्कालिक संदेश पुश, वीचैट छोटे प्रोग्राम, मोबाइल ऐप संदेश पुश, पीसी सॉफ़्टवेयर संदेश पुश आदि
    [उदाहरण workerman-chat聊天室 , वेब संदेश पुश , छोटे तटस्थ聊天室]

  2. इंटरनेट ऑफ थिंग्स
    जैसे कि Workerman के साथ प्रिंटर संचार, माइक्रोकंट्रोलर के साथ संचार, स्मार्ट ब्रेसलेट, स्मार्ट होम, साझा बाइक आदि।
    [ग्राहक मामलों में यिलियन यु, यिबो युग आदि]

  3. गेम सर्वर
    जैसे कि कार्ड गेम, MMORPG गेम आदि।[उदाहरण browserquest-php]

  4. HTTP सेवा
    जैसे उच्च प्रदर्शन HTTP इंटरफेस, उच्च प्रदर्शन वेबसाइट। यदि आप HTTP से संबंधित सेवाएँ या साइट बनाना चाहते हैं तो webman की सिफारिश की जाती है।

  5. SOA सेवाकरण
    Workerman का उपयोग करके वर्तमान व्यवसाय के विभिन्न कार्यात्मक इकाइयों को एकीकृत करने के लिए, सेवाओं के रूप में एकीकृत इंटरफेस को प्रदान करें, ताकि प्रणाली कमजोर यौगिकता, आसान रखरखाव, उच्च उपलब्धता, और आसान विस्तार हासिल कर सके।[उदाहरण workerman-json-rpc, workerman-thrift]

  6. अन्य सर्वर सॉफ़्टवेयर
    जैसे GatewayWorker, PHPSocket.IO, HTTP प्रॉक्सी, sock5 प्रॉक्सी, विभाजित संचार घटक, विभाजित वेरिएबल साझाकरण घटक, मैसेज 큐, DNS सर्वर, WebServer, CDN सर्वर, FTP सर्वर आदि।

  7. घटक
    जैसे असिंक्रोनस redis, असिंक्रोनस HTTP क्लाइंट, इन्टरनेट ऑफ थिंग्स mqtt क्लाइंट, मैसेज 큐 workerman/redis-queue, workerman/stomp, workerman/rabbitmq, फाइल मॉनिटर घटक, और कई तीसरी पार्टी द्वारा विकसित घटक ढांचे आदि।

स्पष्ट है कि पारंपरिक MVC ढांचा उपरोक्त कार्यों को प्राप्त करने में औसत है, इसलिए Workerman का जन्म केवल इसी आवश्यकता से हुआ है।

Workerman का सिद्धांत

अत्यधिक सरल, स्थिर, उच्च प्रदर्शन, वितरित।

अत्यधिक सरल

छोटा ही सुंदर है, Workerman का कोर अत्यधिक सरल है, इसमें केवल कुछ PHP फाइलें हैं और सिर्फ कुछ इंटरफेसExpose किया गया है, इसे सीखना बहुत आसान है। सभी अन्य कार्यों को घटकों के तरीके से विस्तारित किया गया है।

Workerman के पास संपूर्ण दस्तावेज़ + प्राधिकृत पृष्ठ + सक्रिय समुदाय + कई हजार सदस्य QQ समूह + कई उच्च प्रदर्शन घटक + कई उदाहरण हैं, ये सब डेवलपर्स को उपयोग करने में और भी कुशल बनाते हैं।

स्थिर

Workerman ने कई वर्षों के लिए ओपन-सोर्स किया है, जिसे कई लिस्टेड कंपनियों द्वारा बड़े पैमाने पर उपयोग किया गया है, पूर्ण स्थिरता है। कुछ सेवाएँ 2 वर्षों से अधिक समय तक रिस्टार्ट नहीं हुई हैं और फिर भी तेजी से चल रही हैं। कोई कोर डंप नहीं है, कोई मेमोरी लीक नहीं है, कोई बग नहीं है।

उच्च प्रदर्शन

चूंकि Workerman मेमोरी में निवास करता है, यह स्वयं apache/nginx/php-fpm पर निर्भर नहीं है, PHP के साथ संचार के लिए कोई संचार लागत नहीं है, हर अनुरोध में सब कुछ आरंभ करने और फिर सब कुछ नष्ट करने का कोई व्यय नहीं है, इसका प्रदर्शन अत्यधिक है, पारंपरिक MVC ढांचे की तुलना में, इसका प्रदर्शन दर्जनों गुना अधिक है, PHP7 के तहत ab प्रेशर परीक्षण QPS यहाँ तक कि अकेले nginx से भी अधिक है।

वितरित

अब यह एकल बंदूक के समय नहीं है, एकल सर्वर की प्रदर्शन सीमा होती है, वितरित कई सर्वरों की तैनाती ही महत्वपूर्ण है। Workerman सीधे एक लंबी कनेक्शन वितरित संचार योजना प्रदान करता है GatewayWorker ढांचा, सर्वर को केवल सरल विन्यास की आवश्यकता होती है और फिर शुरुआत करनी होती है, व्यवसाय कोड में कोई बदलाव नहीं, प्रणाली की क्षमता कई बार बढ़ जाती है। यदि आप TCP लंबे कनेक्शन एप्लिकेशन का विकास कर रहे हैं, तो सीधे GatewayWorker का उपयोग करने की सिफारिश की जाती है, यह Workerman का एक पैकेज है, जो लंबे कनेक्टिविटी एप्लिकेशन के लिए अधिक समृद्ध इंटरफेस और भयंकर वितरित प्रसंस्करण की क्षमताएँ प्रदान करता है।

इस मैनुअल का दायरा

Workerman 3.x - 5.x संस्करण

विंडोज उपयोगकर्ता (ज़रूर पढ़ें)

Workerman लिनक्स सिस्टम और विंडोज सिस्टम दोनों का समर्थन करता है। विंडोज संस्करण Workerman स्वयं कोई एक्सटेंशन पर निर्भर नहीं है, केवल PHP पर्यावरण चर को ठीक से कॉन्फ़िगर करने की आवश्यकता है, विंडोज संस्करण Workerman स्थापना और ध्यान देने योग्य बातें देखें विंडोज उपयोगकर्ताओं के लिए ध्यान दें

क्लाइंट

Workerman का संचार प्रोटोकॉल ओपन और कस्टमाइज़ेबल है, इसलिए, सिद्धांत रूप में Workerman किसी भी प्रोटोकॉल का उपयोग करने वाले किसी भी प्लेटफ़ॉर्म के क्लाइंट के साथ संचार कर सकता है। जब उपयोगकर्ता क्लाइंट विकसित करता है, तो वह संबंधित संचार प्रोटोकॉल के अनुसार सर्वर के साथ संचार कर सकता है।