প্রস্তাবনা
Workerman, উচ্চ-কার্যকলাপ PHP অ্যাপ্লিকেশন কন্টেইনার
Workerman কি?
Workerman হল একটি খাঁটি PHP তে উন্নীত একটি ওপেন সোর্স উচ্চ-কর্মক্ষমতার PHP অ্যাপ্লিকেশন কন্টেইনার।
Workermanটি পুনরায় চাকার আবিষ্কার নয়, এটি একটি MVC ফ্রেমওয়ার্ক নয়, বরং এটি একটি নিম্ন স্তরের আরও সাধারণ সেবা ফ্রেমওয়ার্ক, যার মাধ্যমে আপনি tcp প্রক্সি, সিঁড়ি প্রক্সি, গেম সার্ভার, ইমেইল সার্ভার, ftp সার্ভার, এমনকি একটি php সংস্করণ redis, php সংস্করণ ডাটাবেস, php সংস্করণ nginx, php সংস্করণ php-fpm ইত্যাদি তৈরি করতে পারেন। Workerman কে বলা যেতে পারে PHP ক্ষেত্রে একটি নতুনত্ব, যা ডেভেলপারদের PHP শুধুমাত্র WEB করার নিষেধাজ্ঞা থেকে সম্পূর্ণ মুক্তি দেয়।
প্রকৃতপক্ষে Workerman একটি PHP সংস্করণ nginx-এর মতো, এর মূল কাঠামো হলো মাল্টি-প্রসেস + Epoll + নন-ব্লকিং IO। Workerman-এর প্রতিটি প্রসেস হাজার হাজার সঙ্গত কানেকশন বজায় রাখতে সক্ষম। নিজেদের স্থায়ী মেমরিতে থাকতে থাকার কারণে, Apache, nginx, php-fpm ইত্যাদি কন্টেইনারের উপর নির্ভর করে না, ফলে এটি অত্যন্ত উচ্চ কার্যকারিতার অধিকারী। একসাথে TCP, UDP, UNIXSOCKET সমর্থন করে, দীর্ঘ সংযোগ সমর্থন করে, Websocket, HTTP, WSS, HTTPS সহ বিভিন্ন যোগাযোগ প্রোটোকল এবং বিভিন্ন কাস্টম প্রোটোকল সমর্থন করে। সময়সূচী, অ্যাসিনক্রোনাস সকেট ক্লায়েন্ট, অ্যাসিনক্রোনাস Redis, অ্যাসিনক্রোনাস Http, অ্যাসিনক্রোনাস মেসেজ কিউ সহ অনেক উচ্চ কর্মক্ষমতা উপাদান রয়েছে।
Workerman-এর কিছু অ্যাপ্লিকেশন দিক
Workerman ঐতিহ্যবাহী MVC ফ্রেমওয়ার্কের থেকে আলাদা, Workerman শুধুমাত্র ওয়েব ডেভেলপমেন্টের জন্য নয়, বরং আরো বিস্তৃত অ্যাপ্লিকেশন ক্ষেত্র রয়েছে, যেমন রিয়েল-টাইম যোগাযোগ, IOT, গেম, পরিষেবা পরিচালনা, অন্যান্য সার্ভার বা মিডলওয়্যার, যা সন্দেহ নেই PHP ডেভেলপারদের দৃষ্টিভঙ্গি ব্যাপকভাবে বৃদ্ধি করেছে। বর্তমানে এই ক্ষেত্রগুলিতে PHP ডেভেলপারের অভাব রয়েছে, যদি আপনি PHP ক্ষেত্রে একটি প্রযুক্তিগত সুবিধা চান, দৈনিক CRUD কাজের সাথে সন্তুষ্ট না হন, বা আর্কিটেক্ট বা প্রযুক্তিগত বিশেষজ্ঞ হয়ে উঠতে চান, তবে Workerman শিখার জন্য খুব মূল্যবান একটি ফ্রেমওয়ার্ক। ডেভেলপারদের পরামর্শ দেওয়া হয় যে তারা শুধুমাত্র ব্যবহারই করবে না, বরং Workerman-এর ভিত্তিতে নিজস্ব ওপেন সোর্স প্রকল্প তৈরি করবে, তাদের দক্ষতা উন্নত করবে এবং নিজেদের প্রভাব বাড়াবে, যেমন Beanbun মাল্টি-প্রসেস নেটওয়ার্ক ক্রল বার ফ্রেমওয়ার্ক হল একটি ভালো উদাহরণ, যা সাম্প্রতিক সময়ে জনপ্রিয়তা অর্জন করেছে।
Workerman-এর কিছু অ্যাপ্লিকেশন দিকগুলি নিচে উল্লেখ করা হল:
-
রিয়েল-টাইম যোগাযোগ
যেমন ওয়েবসাইট চ্যাট, রিয়েল-টাইম মেসেজ পুশ, উইচ্যাট মিনি প্রোগ্রাম, মোবাইল অ্যাপ মেসেজ পুশ, PC সফটওয়্যার মেসেজ পুশ ইত্যাদি
[উদাহরণ workerman-chat চ্যাট রুম、 ওয়েব মেসেজ পুশ、 ছোট তোরণ চ্যাটরুম] -
আইওটি
যেমন Workerman-এর সাথে প্রিন্টার যোগাযোগ, মাইক্রোকন্ট্রোলারের সাথে যোগাযোগ, স্মার্ট ব্রেসলেট, স্মার্ট হোম, শেয়ার করা সাইকেল ইত্যাদি।
[গ্রাহক কেস যেমন ই-লিয়ন ক্লাউড, ই-পার্ক যুগ ইত্যাদি] -
গেম সার্ভার
যেমন কার্ড গেম, MMORPG গেম ইত্যাদি।[উদাহরণ browserquest-php] -
HTTP পরিষেবা
যেমন উচ্চ-কার্যকারিতা HTTP ইন্টারফেস লিখতে, উচ্চ কার্যকারিতা ওয়েবসাইট। যদি আপনি HTTP-সম্পর্কিত পরিষেবা বা সাইট তৈরি করতে চান তবে webman সুপারিশ করা হচ্ছে। -
SOA পরিষেবাকরণের
Workerman ব্যবহার করে বিদ্যমান ব্যবসার ভিন্ন কার্যকলাপ ইউনিটগুলিকে সেবা আকারে মোড়ানো, একটি একক ইন্টারফেস সরবরাহ করে, সিস্টেমটি শিথিলভাবে জোড়া, সহজ রক্ষণাবেক্ষণ, উচ্চ উপলভ্যতা, সহজ স্কেলেবিলিটি নিশ্চিত করতে।[উদাহরণ workerman-json-rpc、 workerman-thrift] -
অন্যান্য সার্ভার সফ্টওয়্যার
যেমন GatewayWorker、PHPSocket.IO、http প্রক্সি、sock5 প্রক্সি、বিষমিত যোগাযোগ উপাদান、বিষমিত ভেরিয়েবল শেয়ারিং উপাদান、মেসেজ কিউ、DNS সার্ভার, WebServer, CDN সার্ভার, FTP সার্ভার ইত্যাদি -
উপাদান
যেমন অ্যাসিনক্রোনাস redis,অ্যাসিনক্রোনাস http ক্লায়েন্ট,আইওটি mqtt ক্লায়েন্ট,মেসেজ কিউ workerman/redis-queue 、 workerman/stomp、workerman/rabbitmq ,ফাইল মনিটরিং উপাদান,এছাড়াও অনেক তৃতীয় পক্ষের দ্বারা উন্নীত উপাদান ফ্রেমওয়ার্ক ইত্যাদি
স্পষ্টতই ঐতিহ্যগত MVC ফ্রেমওয়ার্কের পক্ষে উপরের কার্যকারিতা অর্জন করা খুবই কঠিন, তাই Workerman তৈরি হওয়ার কারণ।
Workerman দর্শন
অত্যন্ত সহজ, স্থিতিশীল, উচ্চ-কার্যক্ষमता, বিতরণ।
অত্যন্ত সহজ
লঘু হল সুন্দর, Workerman-এর কনক ভীষণ সহজ, শুধুমাত্র কয়েকটি php ফাইল এবং শুধুমাত্র কয়েকটি ইন্টারফেস প্রকাশ করে, শেখার জন্য খুব সহজ। সব অন্যান্য কার্যকারিতা উপাদান আকারে সম্প্রসারণ করা যায়।
Workerman-এর সম্পূর্ণ ডকুমেন্টেশন + কর্তৃত্বপূর্ণ হোমপেজ + গতিশীল কমিউনিটি + কয়েকটি হাজার সদস্যের QQ গ্রুপ + অনেক উচ্চ কার্যকরী উপাদান + অনেকগুলি উদাহরণ, এগুলো সবই ডেভেলপারদের জন্য ব্যবহার করা আরও সহজ করে তোলে।
স্থিতিশীল
Workerman বহু বছর ধরে ওপেন সোর্স হয়েছে, অনেক পাবলিক কোম্পানি ব্যাপকভাবে ব্যবহার করছে, অত্যন্ত স্থিতিশীল। কিছু পরিষেবা ২ বছরের বেশি সময় ধরে পুনরায় চালু হয়নি এবং তাড়াতাড়ি চলতে থাকে। কোন coredump নেই, কোন মেমরি লিক নেই, কোন bug নেই।
উচ্চ কার্যকারিতা
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 যেকোন প্রোটোকল ব্যবহারকারী যেকোন প্ল্যাটফর্মের ক্লায়েন্টের সাথে যোগাযোগ করতে পারে। যখন ব্যবহারকারীরা ক্লায়েন্ট ডেভেলপ করে, তারা সংশ্লিষ্ট যোগাযোগের প্রোটোকল অনুসারে সার্ভারের সাথে যোগাযোগ সম্পন্ন করতে পারে।