عند بدء تشغيل تطبيقات Spring Boot، نستخدم عادةً الإعدادات الافتراضية التي يوفرها المبتدئون، وهو ما يكفي لمعظم الحالات. ومع ذلك، إذا كنا بحاجة إلى الأداء، فهناك تعديلات محددة يمكن إجراؤها، كما سيتم توضيحه في الجزء الأول من هذه المقالة.
تطبيقات الويب، RESTFul، التي تستخدم Spring MVC، تضيف بشكل عام تبعية الويب Spring-boot-starter، والتي تستخدم Tomcat كخادم افتراضيًا الويب. ومع ذلك، هناك بدائل أكثر إثارة للاهتمام، مثل Undertow، وهو خادم web عالي الأداء، مع بنية غير متزامنة وغير قابلة للحظر، مما يسمح له بالتعامل مع عدد كبير من الاتصالات المتزامنة بكفاءة، مما يجعلها مناسبة للتطبيقات عالية الأداء. نحن لا نقول أن Tomcat سيء، لكن يمكننا أن نمنح Undertow.
فرصة.لكي نتمكن من استخدام Undertow كخادم web، نحتاج إلى تجاهل تبعية Spring-boot-starter-tomcat التي يضيفها Spring-boot-starter-web بالفعل ثم أضف Spring-boot-starter-undertow.
استخدام pom.xml:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow
استخدام build.gradle:
dependencies { implementation('org.springframework.boot:spring-boot-starter-web') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } implementation 'org.springframework.boot:spring-boot-starter-undertow' }
من خلال application.properties أو application.yml، يمكننا تكوين عدد سلاسل الإدخال والإخراج وعدد سلاسل العمليات التي نريد أن يستخدمها الخادم.
استخدام application.yml
server: undertow: threads: io: 4 worker: 64
استخدام application.properties
server.undertow.threads.io=4 server.undertow.threads.worker=64
I/O تؤدي الخيوط عمليات غير محظورة ويجب ألا تقوم مطلقًا بعمليات حظر، لأنها مسؤولة عن الاستماع إلى الاتصالات التي تصل إلى التطبيق، ثم إرسالها إلى قائمة انتظار المعالجة. القيمة المشتركة هي خيطي إدخال/إخراج لكل نواة وحدة المعالجة المركزية.
تنفذ سلاسل العمليات العاملة عمليات الحظر، مثل طلبات Servlet التي تم إرسالها إلى قائمة انتظار المعالجة بواسطة الإدخال / الإخراج الخيوط . تعتمد القيمة المثالية على حجم العمل، ولكن يوصى عمومًا بتكوين حوالي 10 سلاسل لكل نواة وحدة المعالجة المركزية.
للحصول على معلومات أكثر تفصيلاً والمزيد من الخيارات التي يمكن استكشافها، ما عليك سوى الانتقال إلى وثائق Undertow.
ضغط البيانات هو ميزة تهدف إلى تقليل حجم نص استجابات HTTP، والتي بدورها يمكن أن تحسن أداء تطبيقنا عن طريق تقليل كمية البيانات المنقولة عبر الشبكة.
يعد تكوين ضغط البيانات في Spring Boot مهمة تافهة، لأنه يدعم هذه الوظيفة.
استخدام application.yml
server: compression: enabled: true mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json min-response-size: 1024
استخدام application.properties
server.compression.enabled=true server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json server.compression.min-response-size=1024
server.compression.enabled: تمكين/تعطيل الضغط.
server.compression.mime-types: قائمة بأنواع MIME التي يجب ضغطها.
server.compression.min-response-size: الحد الأدنى لحجم "Content-Length" الضروري لإجراء الضغط.
وبهذا نغلق الجزء الأول من المقال. في الجزء التالي، سنتعلم المزيد عن Hikari وJPA وHibernate وسنتعلم كيفية تكوينها، من أجل تحسين أداء تطبيقات Spring Boot.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3