آیا استفاده از Play Framework در شرایطی که تمامی درایور های اتصال به دیتابیس در جاوا بلاکینگ هستند مزیتی دارد؟

+1 رأی
میانگین بازدید روزانه 0.17197 بازدید

همانطور که میدانیم تمامی درایور های موجود برای اتصال به پایگاه داده در جاوا بلاکینگ میباشند البته به استثنا ReactiveMongo که با استفاده از استریم ها پلی پیاده سازی شده است.

 جستجو هایی که توی چند روز اخیر انجام دادم منو به این نتیجه رسونده که فعلا ساز و کاری برای استفاده ار دیتا بیس به صورت non blocking موجود نمیباشد. البته یک کتابخانه mysql-asyn-connector پیدا کردم که بر اساس توضیحات توش فراخوانی های دیتابیس به صورت asyn انجام میشه. ولی برای دیتابیس های دیگر مخصوصا اوراکل (که مورد استفاده ما هستش) چیزی پیدا نکردم. حتی میتونم بگم که پروژه های تستی هم وجود ندارد. واین میتونه نشون دهنده این موضوع باشه که هنوز نیازی در این زمینه احساس نشده.

این منو برمیگردونه به سوالم که در شرایطی که درایور های دیتابیس ها در جاوا بالذات به صورت بلاکینگ کار میکنن ایا استفاده از پلی که نقطه قوتش non blocking بودنش هست ایا کاری منطقی است و ایا استفاده از پلی در این شرایط هم مزیتی دارد و به افزایش عملکرد سیستم کمک میکند یا خیر؟

البته این نکته رو در نظر دارم که با استفاده ازساختار های پلی حداقل thread pool ای که برای request handling هستش درگیر نمیشه، ولی به هر حال یک ترد دیگر در جای دیگر بلاک باقی میمونه.

سوال 3 سال قبل در تالار برنامه نویسی توسط morshedian (10 امتیاز)
ویرایش 3 سال قبل توسط Saeed Zarinfam

1 جواب

+1 رأی

جداسازی thread pool ها مزایای زیادی داره و اگر بدرستی استفاده بشه برنامه شمارو خیلی responsive تر میکنه و شما میتونید قسمت های blocking پروژتون رو ایزوله کنید و بهتر مدیریت کنید از طرف دیگه Play Framework بدلیل stateless بودن براحتی با یک load balancer میتونه به درخواست های زیادی پاسخ بده که در صورتی که ذات سیستم شما blocking باشه خیلی به scale شدن کمک میکنه.

برای استفاده از درایور های JDBC بصورت non-blocking شما می تونید از slick استفاده کنید.

و در نهایت بنده معمولا وقتی برای یک موضوع در اینترنت منبع و پروژه رایگان و اوپن سورس پیدا نمی کنم برداشتم اینه که اون موضوع high tech بوده نه کم اهمیت!

جواب 3 سال قبل توسط Saeed Zarinfam (1,385 امتیاز)
ویرایش 3 سال قبل توسط Saeed Zarinfam
البته پیکان پژویی ماشین بدی نبود.
پلن slick رو نگاه میکردم دیدم به زودی میخان یه ورژنی بدن که با استریم های جاوا کار میکنه.
البته  از نظر معماری درست نیست دیتابیس RDBMS  یا Java EE ویا Spring  رو بگی  پیکان و MongoDB  و Play روبگی BMW شاید بشه گفت اولی سواری Sedan  یا SUV و برای پردازش داده و پیاده سازی منطق کاری با دیتای سایز کوچک و متوسط مناسبه که مفاهیم قدیمی مثل Data Integrity و مفاهیم RDBMS ای هنوز مهم هستنند و دیگری مثل تراک و کامیون برای پردازش داده های بزرگ ساخته شده
مشکل اینجاست که ما میخوایم با تراک بریم پیست مسابقات سواری و ازش انتظار داریم اول هم بشه
یادمون باشه حذف RDBMS از معماری نرم افزار و رد آن مثل اینه رد نظریه داده های رابطه ای از ریاضیات گسسته است باید بدونیم همیشه مسایلی وجود داره که بهترین روش حل آن استفاده از داده های رابطه ایه

سوال های مشابه

+1 رأی
1 جواب میانگین بازدید روزانه 0.06108 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.14115 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.0878 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1106 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.15228 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.11178 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09159 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06109 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.16284 بازدید
سوال 4 سال قبل در تالار برنامه نویسی توسط ftmh (7 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.0472 بازدید
کانال تلگرام جواب یاب
...