در این مقاله سعی داریم مقایسه ای بین وب سرور های جاوا Jetty و Tomcat برقرار کنیم و یک ایده کلی در خصوص این که کدام یک بهتر است و برای پروژه ما مورد استفاده است به دست آوریم. از این رو بایستی بدانیم وب سرور جاوا Jetty و Tomcat چیست؟
Tomcat چیست ؟
Jetty و Tomcat هر دو وب سرور هایی هستند که HTTP Server ، HTTP Client و JavaX.servlet را اجرا میکنند.
شاید در ابتدا این احساس را داشته باشید که مقایسه بین این دو وب سرور اشتباه است، به این دلیل که tomcat وب سروری است که خیلی بیشتر مورد بحث و گفتگو است و از Jetty نیز قدیمی تر و با سایقه تر است. از بسیاری قابلیت های شگفت آور برای برنامه نویسان پشتیبانی میکند، پس شکی وجود ندارد که از Tomcat استفاده خواهیم کرد، چرا که استفاده از آن آسان است.
در apache tomcat بایستی گفت Tomcat یکی از پیشرو ترین وب سرور های رایگان است که میتواند به تنهایی یک سرور اجرای J2EE را پیاده سازی نماید. در واقع Apache Tomcat یک نرم افزار اپن سورس است که توسط Apache ساخته شده است.
قابلیت های apache tomcat چیست؟
- معروفترین وب سرور Open Source جاوا تحت لایسنس Apache
- سادگی در جاسازی Tomcat در اپلیکیشن های دیگر (برای مثال Jboss)
- قابلیت پیاده سازی Servlet 4.0, JSP 2.4 and JSP-EL 3.1 و Websocket 1.2
- امکان استفاده تجاری وسیع و قدرتمند
- قابلیت یکپارچه سازی با دیگر Application ها مثل Spring
- انعطاف پذیر و قابل توسعه
- قابلیت استفاده در مقیاس های بزرگ و مهم
- تجزیه سازی سریع JSP
- پایداری بالا
وب سرور جاوا Jetty چیست؟
Jetty نیز یک ابزار عالی برای مجموعه قابلیت های خاص است. Jetty در سال ۱۹۹۸ آغاز به کار کرد و ادعا کرد که میتواند بطور ۱۰۰% از Java HTTP Server و Java Servlet پشتیبانی کند. Jetty یکی از پیشرو ترین نرم افزار های اجرا کننده سرویس های HTTP و Servlet است. Jetty هم میتواند به عنوان یک اپلیکیشن تنها و مجزا نصبشود و مورد استفاده رار بگیرد و هم به عنوان یک کامپوننت HTTP بر روی یک اپلیکیشن یا Framework نصب شود. به عنوان مثال میتوان Jetty را در کنار IIS نصب کرد و نقش Java Servlet را اجرا کرد. Jettyیک Servlet Engine ساده است که میتواند به عنوان یک قابلیت غنی نقش Servlet Engine را داشته باشد یا اجرای بخشی از محیط اجرای J2EE را بر عهده داشته باشد.
قابلیت های Jetty
- استاندارد و دارای تمامی قابلیت ها
- قابل نصب بصورت موازی با وب سرور دیگر
- نا هم زمان (Asyncrunous)
- Open Source با امکان استفاده تجاری
- تحت مجور لایسنس Apache و Eclipse
- انعطاف پذیر و قابل توسعه
- قابلیت استفاده در مقیاس پروژه های مهم و بزرگ
- ابزار و کامپوننت های قوی، قابلیت پشتیبانی از محسبات ابری
- هزینه نگهدار پایین
- کوچک و با کارایی بالا
- استفاده پایین از منابع سرور
تفاوت وب سرور جاوا Jetty و Tomcat
محبوبیت
در این تصویر میزان محبوبیت و استفاده Java Servlet Engine های مختلف را مشاهده میکنیم:
این نتیجه از بر آورد بیش از ۱۰۰۰ توصعه دهنده وب تهیه شده است. آنها آمار مربوط به محصولات مهم و بزرگ تولید شده را ارائه کرده اند. همانطور که از آمار پیداست میتوانیم ببینیم که Tomcat و Jetty برندگان وب سرور های Open Source ( open source چیست ) هستند و Tomcat با اختلاف زیاد پر استفاده ترین وب سرور جاوا بین تمامی وب سرور های جاواست.
محک Performance و عملکرد Jetty و Tomcat
سخت افزار مورد استفاده جهت تست Performance دو وب سرور به شرح زیر میباشد:
کد های زیر جهت تست Benchmark دو وب سرور مورد استفاده قرار گرفته است. این قطعه کد خیلی ساده است اما میتواند بازدهی عملکرد وب سرور ها را به ما نشان دهد. این Application در هر دو وب سرور Jetty و Tomcat اجرا شده است. تنظیمات مورد استفاده کاملا پیش فرض بوده و هیچ تغییراتی اعمال نشده است.
نکته: Tomcat روی پورت ۸۸۸۸ و Jetty روی پورت ۸۰۸۰ دستورات را اجرا میکنند.
گزارش Performance مربوط به Jetty:
گزارش Performance مربوط به Tomcat:
این چکیده گزارش تستی است که صورت گرفته است:
Tomcat مقدار ۱۲۲۸ درخواست در ثانیه اجرا کرده است، اما Jetty فقط ۵۷۳ درخواست را اجرا کرده است. در نتیجه به نظر می رسد در این مورد Tomcat عملکرد بهتری را نشان داده است.
نتیجه تست های بیشتر روی Tomcat:
نتیجه تست های بیشتر روی Jetty:
در پایان با توجه به نتایج به دست آمده به نظر می رسد در شرایطی که منابع کمی در اختیار داریم بهتر است از Jetty استفاه کنیم به دلیل مصرف پایین تر منابع و Foot print پایین در این وب سرور.
اما در صورتی که محدودیتی در منابعی که در اختیار دارید وجود ندارد پیشنهاد میشود از Tomcat استفاده نمایید.