X
X

إعداد تطبيق Java كخدمة على Ubuntu 20/22: دليل شامل

الصفحة الرئيسيةمقالاتWindows Serversإعداد تطبيق Java كخدمة على Ubuntu 2...

إعداد تطبيق Java كخدمة على Ubuntu 20/22: دليل شامل


 

تشغيل تطبيقات Java كخدمات على أنظمة Linux مثل Ubuntu 20/22 يُسهل الإدارة، المراقبة، وضمان استقرار الخدمة. في هذا الدليل، سنتناول كل ما تحتاجينه لإنشاء خدمة Java، إدارة بدء/إيقاف/إعادة التشغيل، تمكين الخدمة عند الإقلاع، ضبط موارد النظام، وأفضل الممارسات لضمان أداء آمن ومستقر.

Key Takeaways

  • تشغيل تطبيق Java كخدمة يزيد من موثوقية واستمرارية التطبيق.

  • استخدام systemd يتيح التحكم الكامل في الخدمة (start/stop/restart).

  • ضبط الذاكرة وCPU يضمن استقرار الأداء ويمنع الاستهلاك المفرط للموارد.

  • اتباع أفضل الممارسات مثل الحاويات والمراقبة والأمان يحسن من صيانة وتشغيل الخدمة.


ما هو Java Service؟

مصطلح "خدمة Java" يمكن أن يشير إلى عدة مفاهيم:

  1. خدمات منطق الأعمال أو التكامل: في منصات مثل WaveMaker أو Axway Amplify Fusion، يشير إلى كود مخصص لتنفيذ منطق الأعمال أو دمج مكتبات خارجية، غالبًا مع REST APIs للتطبيقات الأمامية.

  2. Java Management Service (JMS) - Oracle: خدمة لإدارة ومراقبة استخدام Java عبر البيئات المختلفة.

  3. Java Message Service (JMS) API: واجهة API لإنشاء وإرسال واستقبال الرسائل بين التطبيقات.

  4. Service Provider Interface (SPI): مفهوم لتوسيع التطبيقات عبر واجهات وفئات مجردة.

  5. تشغيل تطبيقات Java كخدمات نظام: أدوات مثل Java Service Wrapper تسمح بتشغيل Java كخدمة Windows أو Daemon في Linux.

  6. Enterprise Application Service for Java (EASeJ) - IBM: تجربة تسليم التطبيقات مُدارة لتسهيل التطوير والنشر والتشغيل في بيئات سحابية.


إدارة الخدمة: البدء، الإيقاف، وإعادة التشغيل

على Windows

  • GUI: Control Panel > Administrative Tools > Services → اختر الخدمة → Start/Stop/Restart.

  • Command Prompt:

     
    net start ServiceName net stop ServiceName

على Linux

  • systemctl (الأنظمة الحديثة):

     
    sudo systemctl start servicename sudo systemctl stop servicename sudo systemctl restart servicename
  • service (الأنظمة القديمة):

     
    sudo service servicename start sudo service servicename stop sudo service servicename restart

تمكين الخدمة عند الإقلاع (Enable at Boot)

على Linux

 
sudo systemctl enable your-app.service

على Windows

  • استخدمي msconfig لضبط خيارات بدء التشغيل أو جدولة الخدمة لتعمل تلقائيًا.


ضبط حدود الذاكرة وCPU لتطبيق Java

الذاكرة

  • JVM Options:

     
    -Xms512m -Xmx1024m myapp.jar
  • Kubernetes/Docker:

     
    resources: requests: memory: "512Mi" limits: memory: "1Gi"

CPU

  • Kubernetes/Docker:

     
    resources: requests: cpu: "1" limits: cpu: "2"

إنشاء ملف خدمة systemd لتطبيق Java

  1. إنشاء ملف الخدمة:

 
sudo nano /etc/systemd/system/your-app.service
  1. أضف المحتوى:

 
[Unit] Description=Your Java Application Service After=network.target [Service] User=your_username WorkingDirectory=/path/to/your/application ExecStart=/usr/bin/java -jar /path/to/your/application/your-app.jar SuccessExitStatus=143 TimeoutStopSec=10 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
  1. إعادة تحميل systemd:

 
sudo systemctl daemon-reload
  1. تمكين الخدمة:

 
sudo systemctl enable your-app.service
  1. لتشغيل الخدمة فورًا:

 
sudo systemctl start your-app.service
 
 
 
 
 
 
 
 
 

أفضل الممارسات لتشغيل Java كخدمة

  1. الحاويات (Docker): لضمان بيئة متسقة وقابلة للنقل بين التطوير والإنتاج.

  2. Service Wrapper/Orchestration: systemd على Linux، NSSM على Windows، أو Kubernetes/Docker Compose للحاويات.

  3. التسجيل والمراقبة: Logback/SLF4J و Prometheus/Grafana لمتابعة الأداء والموارد.

  4. إدارة الموارد بكفاءة: ضبط JVM (ذاكرة، CPU)، Connection Pooling، Caching.

  5. الإقلاع والإيقاف التدريجي: للحفاظ على استقرار التطبيق وعدم فقد البيانات.

  6. الأمان: إدارة المفاتيح، المصادقة، تحديث التبعيات، تشفير البيانات.

  7. تحسين الأداء: Profiling، Asynchronous Programming، تحسين الاستعلامات وهياكل البيانات.

  8. التعافي من الكوارث والتوافر العالي: Backup، Load Balancing، Redundancy.


الأسئلة الشائعة (FAQ)

س1: ما الفرق بين Java Service وJava Message Service (JMS)؟
Java Service يشير غالبًا إلى كود لتطبيق منطق الأعمال أو التكامل، بينما JMS هو API لإرسال واستقبال الرسائل بين التطبيقات.

س2: كيف أجعل خدمة Java تعمل تلقائيًا عند الإقلاع على Linux؟
باستخدام الأمر:

 
sudo systemctl enable your-app.service

س3: كيف يمكنني تحديد الحد الأقصى للذاكرة وCPU لتطبيق Java؟
يمكن استخدام JVM Options (-Xms، -Xmx) أو إعدادات الحاويات (Kubernetes/Docker) لضبط Limits وRequests.

س4: هل يمكن تشغيل تطبيق Java كخدمة على Windows؟
نعم، باستخدام أدوات مثل NSSM أو Launch4j لتشغيل التطبيق كخدمة Windows.

س5: ما أفضل طريقة لمراقبة أداء تطبيق Java كخدمة؟
استخدام Logback أو SLF4J لتسجيل السجلات، ودمج أدوات المراقبة مثل Prometheus وGrafana لمتابعة الأداء.

 

 

 

 

هل تحتاج إلى Windows VPS سريع وآمن وبسعر مناسب؟
شركة EgyVPS بتوفرلك سيرفرات ويندوز جاهزة للاستخدام فورًا.
? تواصل معنا عبر: 201001197157
? أو زور موقعنا: https://egyvps.com  


Top