Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het Azure Command Launcher voor Java (jaz) is een lichtgewicht hulpprogramma waarmee java-ontwikkelaars hun toepassingen in Azure eenvoudiger kunnen uitvoeren.
Door op intelligente wijze JVM-opties (Java Virtual Machine) toe te passen die zijn afgestemd op cloudomgevingen, vermindert het hulpprogramma de overhead van de configuratie en verbetert het resourcegebruik, met een hoger potentieel voor betere prestaties.
Dit hulpprogramma is ideaal voor ontwikkelaars die:
- Wilt u betere standaardinstellingen voor JVM zonder diep in afstemmingsgidsen te duiken.
- Ontwikkel en implementeer cloudeigen microservices met frameworks zoals Spring Boot, Quarkus of Micronaut.
- Geef de voorkeur aan werkstromen op basis van containers, zoals Kubernetes en OpenShift.
- Java-workloads implementeren op Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift of Azure Virtual Machines.
Belangrijkste kenmerken
- 🛠 JVM-vlaggen automatisch tunesen voor cloudimplementaties.
-
🚀 Plug-and-play-ervaring. Voeg gewoon toe aan uw Dockerfile of startscript, waarbij u de
javaopdracht vervangt doorjaz. - ☁️ Geoptimaliseerd voor Azure-omgevingen.
- 🔧 Aanpasbaar via omgevingsvariabelen. Er zijn verschillende manieren om configuratiewijzigingen veilig uit te rollen.
Ondersteunde omgevingen
Het Azure Command Launcher voor Java kan worden gebruikt waar het Java-startprogramma beschikbaar is in linux-omgevingen. Het is gevalideerd en getest op de volgende Azure- en CI/CD-platforms:
- Azure Kubernetes Service (AKS)
- Azure Container Apps - een dienst van Microsoft waarmee je containers kunt uitvoeren en beheren in de cloud.
- Azure App Service
- Azure Functions (serverloze computerdiensten van Azure)
- Azure Red Hat OpenShift (ARO)
- Azure Virtual Machines
- Azure DevOps
- GitHub Codespaces
- GitHub Actions (GitHub-acties)
Openbare preview
Het Startprogramma voor Azure-opdrachten voor Java is nu beschikbaar in openbare preview. Lees de aankondiging van de openbare preview voor een inleiding tot dit hulpprogramma en de voordelen ervan.
Hoe het werkt
Het startprogramma voor Azure-opdrachten voor Java bevindt zich tussen de opstartopdracht van uw container of virtuele machine en de JVM. Wanneer u het hulpprogramma start, doet u het volgende:
- Detecteert de cloudomgeving (bijvoorbeeld containerlimieten en beschikbaar geheugen).
- Analyseert het workloadtype en selecteert best passende JVM-afstemmingsvlagmen, zoals:
- Heap grootte.
- De selectie en afstemming van de Garbage Collector.
- Instellingen voor logboekregistratie en diagnostische gegevens, indien nodig.
- Hiermee start u een Java-proces, waarbij de afstemmingsvlagmen en eventuele door de gebruiker verstrekte argumenten worden doorgegeven.
- Onzichtbaar geeft stdout, stderr, stdin en OS-signalen door naar en van het Java-proces.
- Bewaakt het Java-proces en stuurt de afsluitcode door wanneer het wordt beëindigd.
Voorbeeld van gebruik
Het Startprogramma voor Azure-opdrachten voor Java is een vervanging voor de java opdracht, waarvoor geen codewijzigingen zijn vereist. Vervang gewoon java door jaz in uw startscripts, bijvoorbeeld java -jar foo.jar door jaz -jar foo.jar.
In plaats van uw JVM-opties handmatig af te stemmen:
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Gebruik jaz:
jaz -jar myapp.jar
Uw toepassing kan automatisch profiteren van:
- Bewezen standaardinstellingen voor cloudeigen en containerworkloads.
- Minder geheugenverspilling in de cloud.
- Betere opstart- en opwarmprestaties.
Installatie
Het Azure Command Launcher voor Java is beschikbaar voor zowel x64 als arm64 Linux. De ondersteunde installatiemethoden zijn:
- Gebruik een containerafbeelding met het hulpprogramma vooraf geïnstalleerd.
- Installeren in Azure Linux.
- Installeren vanuit de Linux-softwareopslagplaats voor Microsoft-producten.
Containerafbeeldingen
Het hulpprogramma is opgenomen in de containerafbeeldingen voor de Microsoft Build van OpenJDK. Er is geen installatie meer nodig.
Het volgende Dockerfile gebruikt jaz bijvoorbeeld om een Java-toepassing uit te voeren vanuit een jar bestand:
# Use any Microsoft Build of OpenJDK base image
FROM mcr.microsoft.com/openjdk/jdk:25-ubuntu
# Add your application.jar
COPY application.jar /application.jar
# Use jaz to launch your Java application
CMD ["jaz", "-jar", "application.jar"]
Installeren in Azure Linux
Voor virtuele machines en andere Azure Linux-omgevingen kunt u het hulpprogramma installeren met behulp van pakketbeheer tdnf . Installeer het jaz pakket met de volgende opdracht:
sudo tdnf install jaz
Andere Linux-distributies
Als u de Linux-softwareopslagplaats voor Microsoft-producten al hebt ingesteld, voert u de juiste pakketbeheeropdracht uit voor uw distributie om het jaz pakket te installeren.
Voer bijvoorbeeld in Ubuntu- of Debian-distributies het volgende uit:
sudo apt-get install jaz
Als u de Linux-softwareopslagplaats voor Microsoft-producten niet hebt ingesteld, volgt u de instructies voor uw Linux-distributie.
Als u wilt installeren op Ubuntu, opent u een terminal en voert u de volgende opdrachten uit:
wget "https://packages.microsoft.com/config/ubuntu/$(. /etc/os-release; echo $VERSION_ID)/packages-microsoft-prod.deb" -O packages-microsoft-prod.deb && \
sudo dpkg -i packages-microsoft-prod.deb
Nadat de opslagplaats is toegevoegd, installeert jaz u deze door de volgende opdrachten uit te voeren:
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install jaz
Ondersteunde JVM-versies
Voor het Startprogramma voor Azure-opdrachten voor Java moet een op OpenJDK gebaseerde JDK-installatie (versie 8 of hoger) aanwezig zijn op het systeem. Het is getest met:
- Eclipse Temurin OpenJDK 8 met HotSpot JVM
- Microsoft Build van OpenJDK 11, 17, 21 en 25.
Belangrijk
Voor het Azure Command Launcher voor Java is een volledige JDK-installatie vereist. Het is niet volledig getest met alleen JRE-installaties of aangepaste jlink-runtimes. Zie 'Waarom werkt het niet met JRE- of jlink-runtimes?' voor meer informatie.
Configuratie
De jaz opdracht gebruikt geen opdrachtregelargumenten voor een eigen configuratie.
In plaats daarvan worden standaard alle argumenten rechtstreeks doorgegeven aan de java opdracht.
Om ervoor te zorgen dat jaz de configuratie geen invloed heeft op de argumenten van uw toepassing, jaz accepteert u alleen configuratie via omgevingsvariabelen.
De jaz opdracht kan worden geconfigureerd met behulp van deze omgevingsvariabelen:
| Omgevingsvariabele | Beschrijving |
|---|---|
JAZ_HELP |
Ingesteld om een helpbericht af te drukken en af te sluiten met code 1. |
JAZ_PRINT_VERSION |
Stel in op 1 om de jaz versie naar stdout af te drukken en af te sluiten met code 0. |
JAZ_DRY_RUN |
Stel in op 1 om de java-opdracht af te drukken die zal worden uitgevoerd en sluiten af met code 1. |
JAZ_BYPASS |
Ingesteld om 1 te omzeilen jaz bij optimalisatieaanpassingen. Geen effect op telemetrie. |
JAZ_IGNORE_USER_TUNING |
Ingesteld om 1 alle door de gebruiker geleverde afstemmingsvlaggen te negeren en in plaats daarvan jaz afstemming toe te passen.
jaz Anders wordt de JVM alleen afgestemd als er geen door de gebruiker geleverde afstemmingsvlagmen worden gedetecteerd. Zie 'Wat gebeurt er als ik al een aantal JVM-opties in mijn omgeving heb ingesteld?' voor meer informatie over het jaz gedrag met en zonder deze instelling in te schakelen. |
JAZ_EXIT_WITHOUT_FLUSH |
Stel in op 1 om het leegmaken van telemetrie bij het afsluiten over te slaan. Dit voorkomt potentiële vertragingen (maximaal 30s) jaz tijdens het leegmaken van gegevens, maar jaz kan nog steeds telemetrie verzenden. |
Het gebruik van omgevingsvariabelen in plaats van opdrachtregelargumenten maakt het in sommige gevallen ook eenvoudiger om te configureren jaz .
Bij het implementeren van een containertoepassing is het soms eenvoudiger om omgevingsvariabelen in te stellen dan startscripts te wijzigen en te experimenteren met JAZ_IGNORE_USER_TUNING en JAZ_BYPASS kan het nuttig zijn bij het evalueren jaz.
Routekaart
- ⚙️ JVM-configuratieprofielen
- 📦 Ondersteuning voor AppCDS
- 🔄 Doorlopend afstemmen
- 📊 Telemetrie
- 📦 Ondersteuning voor Leyden
Wijzigingenlogboek
Openbare preview 1: 0.0.0-preview+20251118.1
- RPM- en DEB-pakketten implementeren.
- Verbeter aanpassingen voor de garbagecollector.
- Stop met het verzenden van onduidelijke diagnostische uitvoer wanneer het Java-programma wordt afgesloten met niet-nulcode.
- Verbeter het doorsturen van het besturingssysteemsignaal naar het Java-proces, bijvoorbeeld
SIGTERMenSIGINT.- Als u een container met een Java-toepassing stopt, krijgt de toepassing nu de tijd om de toepassing probleemloos af te sluiten.
- Verwijder het gebruik van
PrintFlagsFinal, verbetering van de compatibiliteit met bepaalde Java-toepassingen.- Herstel aanroepen om uitzonderingen te
System.console()genereren. - Stdout-stroombuffering opgelost:
jazde uitvoer wordt niet langer vertraagd totdat er een nieuw regelteken wordt weergegeven.
- Herstel aanroepen om uitzonderingen te
- Andere bugfixes en verbeteringen in interne tolerantie.
Privévoorbeeld 2
- Bugfixes.
- Uitgebreide compatibiliteit met Linux-distributies door glibc-vereisten te verminderen.
-
jazdetecteert nu of er handmatige JVM-afstemming aanwezig is en in dat geval worden er geen eigen aanpassingen toegepast. -
JAZ_IGNORE_USER_TUNING=1negeert handmatige JVM-afstemming indien aanwezig en past in plaats daarvan de eigen afstemmingsaanpassingen van Jaz toe. - Er is een vaste
PrintFlagsFinaluitvoer weergegeven (indien niet aangevraagd) bij gebruikjazmet OpenJDK HotSpot JVM 8.
Privévoorbeeld 1
- Initiële release van Azure Command Launcher voor Java.
Telemetrie
Azure Command Launcher voor Java verzamelt gebruiksgegevens en verzendt deze naar Microsoft om onze producten en services te verbeteren. Lees onze privacyverklaring voor meer informatie.