اخیرا مجبور شدم روی یک پروژه چت آنلاین کار کنم که یک موتور چت داره و یک سری ریکوئست رو میگیره و جواب مناسب رو میده… با php و فریمورک لاراول (♥) و وب سرور آپاچی شروع کردم برای هرچه بهینه تر شدن موتور از روش comet استفاده کردم که یک درخواست رو تا دریافت درخواست بعدی به تاخیر میندازه و خلاصه به روشی خلاقانه باعث پایین اومدن حجم درخواست ها به سرور و در عین حال real time شدن کامل برنامه میشه. واضحه که با این حجم read و write که توی همچین سیستمی وجود داره، mysql گزینه مناسبی برای مدیریت داده ها نیست و بخاطر همین از همون اول از mongodb بعنوان یک سیستم مدیریت پایگاه داده noSQL استفاده کردم…
تا اینجا یه موتور چت (chat engine) با لاراول و مانگو دارم… برای تست ، ۲۰ کاربر با سشن های مختلف روش فعال کردم که هر کدوم دارن چت میکنن و بیشتره تایم رو هم گوش میکنن و منتظر دریافت پیام طرف مقابلن… با ۲۰ تا کاربر با اینکه منابع نسبتا بالایی از سرور استفاده میشد ولی سرعت جواب ها قابل قبول بود… وقتی تعداد کلاینت های سیستم پایین هست بالطبع تعداد درخواست هایی که برای سیستم میاد هم پایین خواهد بود و مشکلی پیش نمیاد… اما وقتی تعداد کلاینت ها رو ۱۰۰ برابر کردم… بووووم… سیستم ترکید☺
اینجا بود که به ضعیف بودن php و یه وب سرور مثل آپاچی ایمان آوردم… یه چرخی تو اینترنت زدم و مقاله هایی رو خوندم که دقیقا حرف الان من رو تایید میکردن… کم کم با پدیده ای به نام nodejs آشنا شدم… syntax و داکیومنت خوبش باعث شد که سمتش برم و موتور چت رو ببرم روی node…
گرچه تحقبق روی پروژه انقد طولانی شد که شرکت، پروژه رو شکست خورده تلقی کرد و رفتم روی پروژه ی بعدی… ولی به شما پیشنهاد میکنم اشتباه من رو تکرار نکنید و اگه سیستم مشابهی رو برای کارتون نیاز دارید به node بعنوان یک گزینه خوب نگاه کنید… یه مقایسه قشنگه node و php رو هم توی این لینک ببینید. موفق باشید 🙂
ممنون حمید جان برای راهنمایت ساده و مفید
من لاراول میزنم ، جاوااسکریپ هم میدونم با نود کار نکردم تا حالا ، مقاله خوبیی بود و واقعا الان به همچین مقاله ای نیاز داشتم ، اما سوال برام پیش اومده که چطوری فیس بوک داره با php کار میکنه در حالی که بی تردید خیلی خیلی بزرگ تر از پروژه ی شماست
خب من روی سیستم شخصی خودم کار میکردم و اونقدر که باید مورد رو اصولی کار نکرده بودم
فیسبوک اولا قطعا سرور های قدرتمندی داره که بصورت توزیع شده عمل میکنن و بار محاسبات رو روی سیستم های مختلف توزیع میکنن، ثانیا facebook بعید میدونم همه بخش های کارش رو با PHP کار کرده باشه و خب قطعا تا الان رفته دنبال یسری تکنولوژی های دیگه برای کارهاش
در ضمن من روی وب سرور آباچی کار کردم که بعد از اون هم پی بردم به ضعفش و همه میدونن خیلی وب سرور قدرتمندی نیست و بیشتر بخاطر رایگان بودنش طرفدار داره زیاد
و البته PHP هم توی ورژن های جدیدش به گفته خودش پرفورمنسش بهتر شده که البته من خیلی حس نکردم…
واقعا کاربردی بود ممنون