4 puntos por xguru 2024-12-26 | 1 comentarios | Compartir por WhatsApp
  • JRuby combina la productividad de Ruby con el rendimiento de la JVM, y JBang brinda una gestión simple de dependencias y un entorno de ejecución.
    • Al combinar ambas herramientas, es posible aprovechar de forma integrada librerías de Ruby y Java.
    • JBang: una herramienta para ejecutar fácilmente programas de Java/Kotlin/Groovy y gestionar dependencias.
    • JRuby: una implementación de Ruby que funciona sobre la JVM, que combina la productividad de Ruby con el rendimiento de la JVM.
  • La gestión de dependencias (Gradle/Maven, entre otras) necesaria para usar bibliotecas Java en JRuby suele ser compleja y difícil.
    • Se decidió experimentar con JBang para gestionar dependencias de forma sencilla y ejecutar scripts de JRuby.
  • Configuración basada en Docker.
    • Se usa una imagen de Docker basada en Amazon Corretto (JDK).
    • Se descargan e instalan JRuby y JBang y se agregan al PATH.
    • El Dockerfile incluye tanto Ruby Gem como bibliotecas Java.
  • Se escribió un RunJRuby.java simple para gestionar dependencias de Java con JBang y ejecutar el script de JRuby.
    • Configuración del entorno de ejecución de JRuby con ProcessBuilder.
    • Envío de dependencias de Java a JRuby mediante la configuración de CLASSPATH.
  • Uso de Javalin (framework web basado en Java) junto con JRuby para construir una API REST.
    • Se agregó autenticación JWT y se implementó una API CRUD con integración a SQLite.
    • En Java se aprovechan bibliotecas de alto rendimiento para HTTP, operaciones de base de datos, etc., mientras que en Ruby se maneja la lógica de negocio.
  • Resultados de la prueba de rendimiento.
    • Se ejecutó una prueba de tiempos de respuesta con la herramienta Apache Benchmark (ab) para 1,500 solicitudes (25 concurrentes).
    • Resultado: el 95% de las solicitudes se procesó en menos de 10 ms.
    • Se ofrece un alto rendimiento al usar la versión más reciente de Javalin y Virtual Threads.
  • Se combinan las ventajas de Ruby y Java para cumplir tanto con la productividad como con el rendimiento.
  • GitHub Repo: jbang-jruby-javalin como referencia

1 comentarios

 
clickin 2024-12-26

El memory leak crítico de Java+Groovy
Al ejecutar scripts sobre la JVM, vi casos donde se produce un memory leak en ciertas condiciones, y me pregunto cómo se comporta JRuby.