Workermanের বৈশিষ্ট্য

1、বিশুদ্ধPHP উন্নয়ন

Workerman ব্যবহার করে তৈরি করা অ্যাপ্লিকেশনগুলি php-fpm, apache, nginx-এর মতো কন্টেনার ছাড়াই স্বাধীনভাবে চলতে পারে। এটি PHP ডেভেলপারদের জন্য অ্যাপ্লিকেশন তৈরি, প্রেরণ এবং ডিবাগ করা খুব সহজ করে তোলে।

2、PHP মাল্টি-প্রসেস সমর্থন করে

সার্ভারের মাল্টিCPU কর্মক্ষমতা পুরোপুরি ব্যবহার করার জন্য, Workerman ডিফল্টভাবে মাল্টি-প্রসেস মাল্টি-টাস্কিং সমর্থন করে। Workerman একটি প্রধান প্রসেস এবং একাধিক উপ-প্রসেস চালু করে সেবা প্রদান করে, প্রধান প্রসেস উপ-প্রসেসগুলিকে মনিটর করে, উপ-প্রসেস স্বতন্ত্রভাবে নেটওয়ার্ক সংযোগ শুনে এবং ডেটা পাঠানো এবং প্রক্রিয়া করে, প্রসেস মডেলের সরলতার কারণে Workerman আরও স্থিতিশীল এবং আরও দক্ষ।

3、TCP, UDP সমর্থন করে

Workerman TCP এবং UDP দুটি পরিবহন স্তরের প্রোটোকল সমর্থন করে, শুধু একটি বৈশিষ্ট্য পরিবর্তন করে পরিবহন স্তরের প্রোটোকল পরিবর্তন করা যায়, ব্যাবসার কোড পরিবর্তনের প্রয়োজন নেই।

4、দীর্ঘ সংযোগ সমর্থন করে

অনেক সময় PHP অ্যাপ্লিকেশনের ক্লায়েন্টের সাথে দীর্ঘ সংযোগ রাখতে হতে পারে, যেমন চ্যাটরুম, গেম ইত্যাদি, কিন্তু传统的 PHP容器(apache、nginx、php-fpm)很难做到这一点。 কাজ Workerman ব্যবহার করলে, যদি সার্ভার ব্যবসারভাবে সংযোগ বন্ধ করার ইন্টারফেসকে সক্রিয়ভাবে কল না করে, তবে PHP দীর্ঘ সংযোগ ব্যবহার করা যায়। Workerman-এর একটি একক প্রসেস হাজার হাজার সংযোগের সমান্তরাল সমর্থন করতে পারে, এবং মাল্টি-প্রসেস দশ হাজার থেকে এমনকি এক মিলিয়ন সমান্তরাল সংযোগ সমর্থন করে।

5、বিভিন্ন অ্যাপ্লিকেশন স্তরের প্রোটোকল সমর্থন করে

Workerman ইন্টারফেস বিভিন্ন অ্যাপ্লিকেশন স্তরের প্রোটোকল সমর্থন করে, কাস্টম প্রোটোকল সহ। Workerman-এ প্রোটোকল পরিবর্তন করা খুবই সহজ, সেটি কেবল একটি ক্ষেত্র কনফিগারেশন করে, প্রোটোকল স্বয়ংক্রিয়ভাবে পরিবর্তিত হয়, ব্যবসার কোডে শূন্য পরিবর্তন, এমনকি একাধিক ভিন্ন প্রোটোকলের পোর্টও চালু করা যেতে পারে, বিভিন্ন ক্লায়েন্টের চাহিদা মেটাতে।

6、উচ্চ সমান্তরাল সমর্থন করে

Workerman Libevent ইভেন্ট পোলিং লাইব্রেরি সমর্থন করে (এটি event এক্সটেনশন ইনস্টল করা প্রয়োজন), ব্যবহার করে Event দীর্ঘ সংযোগের উচ্চ পরিচিতিতে পারফরম্যান্স খুব অসাধারণ, যদি Event এক্সটেনশন ইনস্টল না থাকে তবে PHP-র অন্তর্নির্মিত Select সম্পর্কিত সিস্টেম কল ব্যবহার করা হয়, পারফরম্যান্সও খুব শক্তিশালী।

7、সার্ভিস স্মুথ রিস্টার্ট সমর্থন করে

যখন সার্ভিস রিস্টার্ট করার প্রয়োজন হয় (যেমন রিলিজ সংস্করণ), আমরা চাই না যে ব্যবহারকারীদের অনুরোধ প্রক্রিয়া করার সময় প্রসেসটি তাত্ক্ষণিকভাবে শেষ হয়ে যাক, এবং রিস্টার্টের মুহূর্তে ক্লায়েন্ট যোগাযোগ ব্যর্থ হতে চাই না। Workerman স্মুথ রিস্টার্ট ফাংশন প্রদান করে, যা পরিষেবা স্মুথ আপগ্রেড নিশ্চিত করে এবং ক্লায়েন্টের ব্যবহারে বাধা দেয় না।

8、ফাইল আপডেট ডিটেকশন এবং অটোমেটিক লোডিং সমর্থন করে

উন্নয়নের প্রক্রিয়ায়, আমরা চাই যে আমরা কোড পরিবর্তন করার পরে তা অবিলম্বে কার্যকর হোক, যাতে ফলাফল দেখা যায়। Workerman প্রদান করে FileMonitor ফাইল মনিটর কম্পোনেন্ট, যতক্ষণ না ফাইল আপডেট হয়, Workerman স্বয়ংক্রিয়ভাবে reload চালায়, নতুন ফাইল লোড করার জন্য এবং তাকে কার্যকর করে।

9、নির্দিষ্ট ব্যবহারকারী হিসাবে সাব-প্রসেস চালানোর সমর্থন করে

যেহেতু সাব-প্রসেস হল ব্যবহারকারীদের অনুরোধ বাস্তবায়নকারী প্রসেস, নিরাপত্তার দিক থেকে সাব-প্রসেসের উচ্চ সম্মানের অধিকার থাকতে হবে না, তাই Workerman সাব-প্রসেসের জন্য ব্যবহারকারী সেটিংয়ের সমর্থন করে, যা আপনার সার্ভারকে আরও নিরাপদ করে তোলে।

10、অবজেক্ট বা রিসোর্স স্থায়ীভাবে রাখা সমর্থন করে

Workerman চলাকালীন কেবল PHP ফাইল একবার লোড এবং বিশ্লেষণ করে, তারপর রাম-এ স্থায়ীভাবে থাকে, যা ক্লাস এবং ফাংশনের ঘোষণা, PHP কার্যনির্বাহী পরিবেশ, প্রতীক সারণী ইত্যাদি পুনরায় তৈরি ও ধ্বংস করতে বাধা দেয়, যা ওয়েব কন্টেইনারের অধীনে চলমান PHP পদ্ধতির সাথে সম্পূর্ণ ভিন্ন। Workerman-এ, এক প্রক্রিয়ার জীবনের সময়কাল ধরে স্থির সদস্য বা বৈশ্বিক পরিবর্তনশীল প্রতিদিনই নিরাপদে থাকবে, অর্থাৎ যদি অবজেক্ট বা সংযোগের মতো রিসোর্সকে গ্লোবাল ভেরিয়েবল বা ক্লাস স্ট্যাটিক সদস্যের মধ্যে রাখা হয় তবে বর্তমান প্রক্রিয়ার পুরো জীবনকাল জুড়ে সমস্ত অনুরোধ পুনরায় ব্যবহার করা যায়। উদাহরণস্বরূপ, যদি একটি একক প্রক্রিয়ার মধ্যে ডাটাবেজ সংযোগ একবার ইনিশিয়ালাইজ করা হয়, তবে পরবর্তী সময়ে এই প্রক্রিয়ার সকল অনুরোধ সেই ডাটাবেজ সংযোগকে পুনঃব্যবহার করতে পারে, যা ডাটাবেজের সাথে সংশ্লিষ্ট TCP তিনটি হ্যান্ডশেক, ডাটাবেজ অনুমতি যাচাই, সংযোগ বিচ্ছিন্নকরণের সময় TCP চারটি হ্যান্ডশেকের প্রক্রিয়া এড়াতে পারে এবং অ্যাপ্লিকেশনের দক্ষতা অনেক বাড়াতে পারে।

11、উচ্চ কর্মক্ষমতা

যেহেতু PHP ফাইল ডিস্ক থেকে একবার পড়া এবং বিশ্লেষণ করা হলে রাম-এ স্থায়ীভাবে থাকে, পরবর্তী ব্যবহারে রাম থেকে সরাসরি opcode ব্যবহৃত হয়, এটি ডিস্ক আইও এবং PHPতে অনুরোধের প্রাথমিকীকরণ, কার্যনির্বাহী পরিবেশ তৈরি, লেক্সিক্যাল বিশ্লেষণ, সিনট্যাক্স বিশ্লেষণ, কম্পাইল করে opcode, অনুরোধ বন্ধ করার মতো অনেক সময় ব্যয়কারী প্রক্রিয়া অনেক কমিয়ে দেয়, এবং nginx, apache-এর মতো কন্টেনারের উপর নির্ভর করে না, nginx-এর মতো কন্টেনার এবং PHP-এর মধ্যে যোগাযোগের খরচ কমে যায়, সবচেয়ে গুরুত্বপূর্ণ হলো রিসোর্সগুলি স্থায়ীভাবে রাখা যায়, প্রতিবার ডাটাবেস সংযোগ ইনিশিয়ালাইজ করতে হবে না ইত্যাদি, তাই Workerman ব্যবহার করে অ্যাপ্লিকেশন তৈরি করা হলে কর্মক্ষমতা খুব বেশি।

12、HHVM সমর্থন করে

HHVM ভার্চুয়াল মেশিনে চালানোর সমর্থন করে, যা PHP কর্মক্ষমতা কয়েকগুণ বাড়াতে পারে। বিশেষভাবে CPU-ঘন কাজের জন্য, কর্মক্ষমতা খুব অনন্য। বাস্তব চাপ পরীক্ষার তুলনা দ্বারা, কোনও লোড কাজ না থাকলে, Workerman HHVM-এর অধীনে চলার সময় Zend PHP5.6-এর নিচে চলতে থাকা নেটওয়ার্ক থ্রুপুটের 30-80% বৃদ্ধি পেয়েছে।

13、বণ্টিত স্থাপনার সমর্থন করে

14、ডেমনাইজেশন সমর্থন করে

15、মাল্টি-পোর্ট শোনার সমর্থন করে

16、স্ট্যান্ডার্ড ইনপুট-আউটপুট রিডিরেকশন সমর্থন করে