Java & Vert.x: Ausführen von zwei verschiedenen Abhängigkeitssätzen in derselben JVM mit unterschiedlichen KlassenladernJava

Java-Forum
Anonymous
 Java & Vert.x: Ausführen von zwei verschiedenen Abhängigkeitssätzen in derselben JVM mit unterschiedlichen Klassenladern

Post by Anonymous »

Ich habe einen ziemlich komplexen API-Dienst, der unter Vert.x in der JVM läuft – er begann recht einfach, ist aber im Laufe der 10 Jahre, seit er in Produktion ist, enorm gewachsen. So sehr, dass wir uns in der Abhängigkeitshölle befinden – viele externe Abhängigkeiten, die oft auf interessante Weise interagieren, zum Beispiel: Gestern habe ich versucht, den Google-Client zu aktualisieren, und das hat irgendwie die GraalVM-Integration kaputt gemacht – die Konsumenten dieser Bibliotheken unterscheiden sich voneinander und soweit ich weiß, verweist der Google-Client nicht auf GraalVM und umgekehrt (aber dieser Verhaltensfehler ist zu 100 % ein Ergebnis des mehrfach getesteten Google-Versionsupdates).
Ich suche nach einer Möglichkeit, diese Module (und andere) so aufzuteilen, dass sie nicht alle im selben Abhängigkeitsdiagramm leben, aber ich möchte meinen Ressourcenbedarf dadurch nicht erhöhen – daher vermeide ich es lieber, diese in verschiedene Microservices aufzuteilen, die jeweils auf ihrer eigenen JVM (möglicherweise ihrer eigenen VM) laufen. Ich frage mich, ob es möglich ist, zwei verschiedene Klassenlader zu verwenden, um zwei verschiedene Fat Jars zu laden, sodass mehrere Versionen derselben APIs (Java-Module und -Klassen) in derselben JVM leben können, ohne sich gegenseitig zu beeinträchtigen, und ob wir dann Verticles von jedem in dieselbe Vert.x-Instanz laden können.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post