[Repost] sorprendido, Spring Boot consume tanta memoria!

Sorprendido, Spring Boot consume tanta memoria.

 

En general, Spring Boot es relativamente fácil de construir, especialmente el cubo de la familia Spring Cloud, conocido como microservicios para la gente, pero en la tendencia de desarrollo, la tecnología de contenedores ha madurado. Frente a Spring Boot, que consume mucha memoria, las pequeñas empresas dicen que no lo hacen. Arriba. Hoy en día, muchos marcos de microservicios JAVA recién nacidos se centran principalmente en "ligero", principalmente porque Spring Boot es demasiado pesado.

Marco de microservicios JAVA

Nube 1-Spring

Introduccion

Hay un fuerte respaldo para Spring, y los problemas de actualización, estabilidad y madurez no necesitan considerarse en absoluto. El personal técnico del departamento de JAVA probablemente ha escuchado el nombre de Spring, por lo que no hay escasez de programadores ..., y la dificultad de comenzar es muy baja, puede salvar a un arquitecto.

Sin embargo, debe pagar en el servidor:

  • Al menos un servidor de "descubrimiento de servicio";

  • Puede haber una puerta de enlace unificada Puerta de enlace;

  • Puede ser necesario un centro de configuración para la "gestión de configuración distribuida";

  • Puede realizar un "seguimiento del servicio" para saber de dónde proviene mi solicitud y dónde;

  • Puede requerir "monitoreo de clúster";

  • Después de que el proyecto se puso en línea, descubrimos que necesitamos muchos servidores, y cada vez que agregamos servidores al clúster, nos sentimos angustiados;

Prueba de presión durante 30 segundos.

Uso de memoria antes de la prueba de esfuerzo

640? Wx_fmt = png

Como se muestra en la figura, la memoria ocupa 304M.

Uso de memoria durante la prueba de esfuerzo

640? Wx_fmt = png

Como se muestra en la figura, la memoria ocupa 1520M (1.5G) y la CPU se eleva al 321%

Resumen

640? Wx_fmt = png

Resumen

Una aplicación simple de Spring Boot, con un mínimo de 1G de memoria, y un microservicio compilado con un número relativamente pequeño de puntos comerciales tendrá un JAR de aproximadamente 50M; y Spring Cloud introducirá relativamente más componentes y consumirá más recursos.

El tiempo de inicio es de aproximadamente 10 segundos: se inició la aplicación en 10.153 segundos (JVM ejecutándose para 10.915)

Kit de herramientas de programación reactiva basado en JAVA Vert.x

Introduccion

Eclipse Vert.x respaldado por Eclipse es un juego de herramientas para crear aplicaciones receptivas en la JVM. El posicionamiento no entra en conflicto con Spring Boot, e incluso puede usar Vert.x con Spring Boot. Muchos módulos Vert.x proporcionan una gran cantidad de componentes de microservicios, que a los ojos de muchas personas es una opción de arquitectura de microservicios.

Huawei MicroService Framework Apache ServiceComb se implementa con Vert.x como marco subyacente. En el "sitio de prueba de referencia TechEmpower", el rendimiento de Vert.x también es muy llamativo.

Prueba de presión durante 30 segundos.

Uso de memoria antes de la prueba de esfuerzo

640? Wx_fmt = png

Como se muestra en la figura, la memoria ocupa 65M.

Uso de memoria durante la prueba de esfuerzo

640? Wx_fmt = png

Como se muestra en la figura, la memoria ocupa 139M y la CPU ocupa 2.1%. Parece que no hay prueba de esfuerzo.

Resumen

640? Wx_fmt = png

Resumen

Después de que se empaqueta el servicio único Vert.x, es aproximadamente 7M de JAR. No depende de contenedores como Tomcat y Jetty, y se ejecuta directamente en la JVM.

Vert.x consume muy pocos recursos. Creo que un servidor 2G de 1 núcleo ya puede implementar muchos servicios Vert.x. Excepto por los problemas de codificación, realmente se ajusta a pequeños proyectos y pequeños módulos. La puerta de enlace de código abierto basada en Vert.x ha aparecido en la documentación de ayuda de git market-VX-API-Gateway

https://duhua.gitee.io/vx-api-gateway-doc

Soporte multi-idioma, muy adecuado para pequeños proyectos para conectarse rápidamente.

El tiempo de inicio es inferior a 1 segundo: inició Vert.x en 0.274 segundos (JVM ejecutándose durante 0.274)

Departamento de JAVA Otro marco de microservicios

Spark Java

  • el tarro es relativamente pequeño, aproximadamente 10M

  • Pequeña memoria, aproximadamente 30 ~ 60 MB;

  • El rendimiento está bien, similar a Spring Boot;

Micronaut

  • El nuevo favorito del equipo Grails;

  • Aplicaciones basadas en microservicios que pueden escribirse en Java, Groovy y Kotlin;

  • En comparación con Spring Boot, es más completo;

  • El rendimiento es mejor y el método de codificación es similar al Spring Boot;

  • El tiempo de inicio y el consumo de memoria son más eficientes que otros marcos;

  • Multilingue

  • Inyección de dependencia

  • Funciones locales en la nube múltiples incorporadas;

  • Muy nuevo, recién lanzado 1.0.0

Javalin

  • Es extremadamente fácil comenzar;

  • Flexible, compatible con ideas de programación síncrona y asíncrona;

  • JAR es pequeño, 4 ~ 5M;

  • Multilingue

  • Hay una sombra de KOA;

  • Solo hay alrededor de 2000 líneas de código fuente, el código fuente es lo suficientemente simple como para comprenderlo y repararlo;

  • En línea con las tendencias actuales;

  • Multilingue

  • Servidor Embarcadero Jetty;

Quarkus

  • Inicio rápido

  • JAR es pequeño, aproximadamente 10M;

  • Muy poca documentación

Leídos recientemente artículos calientes:

640? Wx_fmt = jpeg

Supongo que te gusta

Origin www.cnblogs.com/jinanxiaolaohu/p/12602788.html
Recomendado
Clasificación