ali jvn.
5 سال پیش توسط ali jvn. مطرح شد
27 پاسخ

معماری سایت برای بیش از ۵۰۰۰ الی ۱۰۰۰۰ یوزر آنلاین

سلام دوستان عزیز

بنده میخوام یک سایت طراحی کنم با لاراول که مشتریم میگه میخواد روی ۱۰۰۰۰ یوزر آنلاین به مشکل نخوره و down نشه
از نظر کد نویسی توی پروژه معمولا refactor میکنم کد هام رو و اینکه تمیز کد میزنم بنابراین از این بابت مشکلی ندارم
فقط میخوام بدونم آیا لاراول و اصلا آیا php معماری خاصی داره که باهاش بشه یه همچین کاری رو هندل کرد یا اینکه اصلا با این قضیه مشکلی نداره ؟
لطفا یه راهنمایی در مورد معماری اینجور سایت ها اگر کسی میدونه به من بده ممنون میشم
احتمالا سوال خیلیا باشه
با سپاس فراوان


ثبت پرسش جدید
developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
1

10 هزارتا آنلاین خیلی زیاده و بعید میدونم اینقدر کاربر داشته باشه ولی اگر هم داشته باشه لاراول جواب نمیده
برید سمت نود جی اس یا گو لنگ و ...


ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 5 سال پیش مطرح شد
1

@developer
بنظرتون ۵۰۰۰ رو جواب میده؟


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
1

@alijavanmardi1996
بهترین زبان برای اینکار به نظرم Node js و یا Go هست . PHP درسته که خیلی عالیه منتهی فکر نکنم عاقلانه باشه برای این حجم داده.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
1

سلام
@alijavanmardi1996

جواب میده دوست عزیز
لاراول میتونه خوب هندل کنه این قضیه رو در صورتی که منابع لازم از سمت سرور بهش داده بشه
برای این کار
سرور رم کمتر از 32 گیگ نگیرید
همراه با یه پردازنده قوی Intel Xeon
کلود لینوکس هم حتما نصب بشه روی سرور ، یه وب سرور خوب هم مثل لایت اسپید متناسب با تعداد هسته سرور هم نصب بشه

خیلی راحت و ایمن میتونید این قضیه رو هندل کنید


saeed
@godbavan 5 سال پیش مطرح شد
1

فک کنم با ردس کرد و همچنین کلاستر کردن میتونید بیشتر از اینها هم جواب بگیرید


ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 5 سال پیش آپدیت شد
2

آخه اگر php جواب نمیداد چرا digikala سوییچ کرد روی php خب میرفت سراغ node.js
درسته node.js کامل ساخته شده برای request های بالا ولی میخواستم ببینم که laravel و php هم همچین قابلیتی دارن یا نه

من خودم تو این فکر بودم که برای دیتابیس از یک سرور مستقل استفاده کنم که همه ی کارها روی یک سرور اجرا نشن
نظرتون در مورد این کار چی هست؟


developer
تخصص : برنامه نویس
@developer 5 سال پیش آپدیت شد
0

دیجی کالا نهایت کاربر آنلاینش 40 50 تا هست نه 10000!!!

این عدد که شما میگید خیلی بالا هست، اگه واقعا اینقدر کاربر آنلاین دارید اصلا نرید سمت لاراول و php که پشیمون میشید.

لاراول نهایتا 200 300 تا رو جواب میده


ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 5 سال پیش مطرح شد
2

@developer
من حس میکنم مشتریم منظورش ۱۰۰۰۰ تا در روز یا ساعت بوده نه لحظه
در این صورت چی بازم جواب نمیده؟


developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
1

ببینید به شرطی که منابع سرور کافی داشته باشید لاراول ثانیه ای 300 400 تا جواب میده، یعنی روزی چند میلیون ریکوئست،

پس واسه 10000 تا توی ساعت میشه ثانیه ای 3 ریکوئست که راحت جواب میده


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

ابتدا مقدار واقعی درخواست/ثانیه رو مشخص کنید و بعد دنبال زبانش بگردید.

روی نسخه های جدید PHP (۷ به بالا) در شرایط خوب لاراول حدودا ۵۰۰ تا ریکوئست در ثانیه رو جوابگو هست. (این مقدار برای 95٪ پروژه‌های ما در ایران کافیه)
NodeJS بیشتر و گزینه نهایی هم زبان Go هست


sajjad
تخصص : برنامه نویس back end
@sajjad652 5 سال پیش آپدیت شد
1

چی 10000 تا خیلی هست ! شک نکن با laravel بزنی down میشه این مقدار رو نمیتونه هندل کنه اگر هدفت با php فکر کنم با yii2 بتونی به یه جایی برسی در غیر اینصورت از node js یا go استفاده کن البته rails هم گزینه فوق العاده ای هست که بلد نیستیم :)


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
1

@developer
درود...
دیجیکالا اتفاقا زمان آنلاین کاربران بسیار بالاست...
یادم باشه روزی ۳۰۰۰۰ الی ۵۰۰۰۰ تا سفارش داره و کاربران زمان بیشتری صرف جستجو در دیجیکالا برای پیدا کردن محصول مورد علاقه خود می کند حتی گفته شده ۵۰۰۰۰۰ تا محصول در دیجی کالا ثبت شده بخواد کاربر یکی محصول در آن ۵۰۰۰۰۰ محصول پیدا کنه باید زمان بیشتری برای پیدا محصول اختصاص بده...
خب کاربر زمان بیشتری در دیجی کالا می گذرونه یعنی مدت زمان آنلاین بودن بالاست و فوق یکساعت در سایت دیجی کالا آنلاین می مونه...
خود دیجی کالا اعلام کرده وقتی هر چقدر کاربر زیاد باشه و تعداد بالا باشه باید سرور قدرتمندی برات تعریف بشه ... حتی حجم رم سرور دیجیکالا از یک ترابایت گذشته...


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
1

لاراول تعداد کاربران آنلاین نامحدود پشتیبانی می کند.

متن انگلیسی :

Laravel supports an infinite number of online users.

Your server configuration is the deciding factor in what you can support. IF you have a tiny little 1 cpu 1 core 1 gig of ram server running @ 10mbps then you number is considerably lower than a massive AWS cloud with load balancing and all that fun stuff running at 10gbps...

Its not laravel that decides these things, its the rest of your configuration.

developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
2

رایموند جان منظور از کاربر آنلاین یعنی تعداد ریکوئستها در ثانیه هست نه اینکه صد میلیون نفر بیان فقط نگاه کنند سایت رو و ریکوئستی ندن!
در ضمن اگه حساب کنی دی جی کالا به طور متوسط هر ثانیه نهایتا 10 ریکوئست داره نه بیشتر
@RaymondDragon


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
1

@developer
منظور شما از درخواست ها چیه؟


developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
1

@RaymondDragon
یعنی کاربر به سمت سرور یک درخواست بده مثلا باز کردن یک صفحه جدید، یا پست کردن سوال یا لایک کردن و ...


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
2

کلا به نظرم واسه سایت ها ( از شخصی تا فروشگاه اینترنتی به عظمت دیجیکالا ) پی اچ پی بهترین گزینه هست
ولی واسه اپلیکیشن های موبایلی که خیلی کاربر با برنامه تعامل داره و ریکوئست زیاد میده مث اینستا یا بازار یا ... node js و go مناسب تر باشن


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش آپدیت شد
1

@developer
خب ...
این درخواست گسترده تر به نظر میاد...

دیجی کالا ۵۰۰.۰۰۰۰ الی ۱.۰۰۰.۰۰۰ محصول ثبت شده داره...
کاربری بخواد بین این همه محصولات محصول مورد علاقه خودش پیدا کنه به نظرت درخواست ها بالاتر نمیره؟ یا در صفحه نوشته جدید برای محصول و لایک و غیره انجام بده...
قراره ۲۰۰ میلیون کاربر پشتیبانی کنه...


developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
2

شما داری حدسی میگی من دارم طبق امار میگم طبق آمار خودشون روزانه 850 هزار بازدید میشه از سایت، نگفته بازدید یونیک، گفته کلا بازدید، پس نهایتا به طور متوسط ثانیه ای 10 ریکوئست هست
@RaymondDragon
که لاراول تا 300 400 رو جواب میده


reza ahmadi
تخصص : توسعه دهنده سیتم های تحت وب
@rezahmadi 5 سال پیش آپدیت شد
1

ما برای برگزاری دوره های سازمانی با کاربر بسیار بالا از cms به نام مودل استفاده می کنیم که با زبان php نوشته شده و با اینکه
سرور هامون کانفیگ بسیار بالایی دارن ولی متاسفانه بزرگترین مشکل ما همین کاربر آنلاین هست زمان برگزاری آزمون بشدت حجم request ها بالا میره و درصدی از کاربر ها آزمونشون مختل میشه.
مشکل رو بررسی که کردیم متوجه شدیم مشکل هم مربوط به php میشه و هم به خود آپاچی .
خیلی تحقیق کردم و به این نتیجه رسیدم که بهترین گزینه برای ما همون nodejs هست
پس ریسک نکن

در ابتدا بپرس دقیقا منظورشون از 10000 کاربر آنلاین چی هست چون تنها تحت شرایط خیلی خیلی خاص با اینچنین درخواست همزمان مواجه میشویم
مثلا زمانی که شما بخواین یک آزمون آنلاین بین صد هزار نفر در 10 دقیقه برگزار کنید قطعا با این عدد مواجه خواهید شد که php بشدت شما رو سر خورده میکنه .


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام