Un artículo lo lleva a comprender el paquete familiar de primavera

  ¿Qué alimentos hay en el barril de la familia de la primavera?

  En el último número, hablamos sobre el conocimiento básico y la ruta de aprendizaje de los dos marcos de spring y springmvc. En este tema, discutiremos el grupo familiar de spring.

  Todos deben saber que, en el orden de aparición, el cubo familiar de primavera probablemente contiene resorte, springmvc, springboot y springcloud. Desde el aperitivo de primavera hasta el asiento de primavera de la dinastía Han, el cubo familiar de primavera se puede describir como una comida imprescindible para los ingenieros de Java. Eche un vistazo a cómo la familia de la primavera ha evolucionado desde la primavera del comandante de tallo desnudo hasta la gran familia de hoy.

  Actualmente, el ecosistema de Spring contiene 22 proyectos principales activos.

  imagen

  Encontrará que estos proyectos cubren casi todos los escenarios de desarrollo diario, pero no necesariamente los usa. Además de spring y springmvc, springcloud y springboot, hay muchos proyectos ecológicos de código abierto que se mantienen continuamente en la comunidad de spring. Por ejemplo, springdata, utilizada para resolver la solución de datos unificados en primavera, la integración de primavera, como su nombre lo indica, es adecuada para integrar servicios externos.

  Además, la seguridad de primavera que podemos usar en algunos proyectos generalmente se usa para resolver algunos problemas de seguridad, y este marco también se usa con mayor frecuencia en la industria.

  Además, Spring AMQP y Spring Kafka integran el middleware de mensajes correspondiente en Spring Framework, de modo que el envío y la recepción de mensajes se pueden usar más fácilmente en el marco.

  Todo el ecosistema de Spring contiene muchos marcos específicos aplicados en escenarios específicos, tales como: "Spring Framework", "Spring Security", "Spring Boot", "Spring Cloud", etc., donde el marco "Spring Framework" es la ecología completa La base principal, otros marcos deben basarse en las funciones básicas proporcionadas por el "Spring Framework", y cada marco tiene su propio almacén de código independiente.

  Ingenieros de Java para la programación de primavera

  Recuerdo que cuando comencé a trabajar en proyectos Java, estaba buscando tutoriales en Internet. En ese momento, he visto muchos proyectos de aplicaciones de Spring Framework. Básicamente, los proyectos de entrada en línea se basan en SpringMVC, que puede ser ssm o ssh.

  En resumen, el tutorial le pedirá que escriba un controlador que devuelva un simple "hola mundo". Si es más complicado, es posible que necesite acceder a la base de datos y usar mybatis. Por supuesto, el código fuente se puede encontrar en Internet muchas veces. Eso está bien. Por supuesto, la premisa es que ha instalado el JDK y usará maven e ide, de lo contrario no podrá ejecutar después de la descarga, y se informarán varios errores. Aunque estos problemas no existen para los controladores antiguos, créanme, este es un problema que Xiaobai a menudo encuentra.

  Cuando escribí un blog por primera vez, estaba trabajando en un proyecto ssm simple. En ese momento, configuré todo tipo de cosas con torpeza y finalmente ejecuté todo el proyecto, así que felizmente grabé el proceso de combate real. Volviendo a los blogs originales, siento que soy muy tacaño.

  Pero esto es todo lo que los programadores novatos necesitan experimentar, debe comprender los conceptos básicos de Java, y luego comprender la Web de Java, para comprender completamente la Web de Java, debe saber primavera, después de la primavera, consúltelo Los componentes también se entienden, especialmente aquellos que puede usar en su trabajo.

  imagen

  Hoy hago Java en Alibaba, y las tecnologías que uso todos los días son middleware de desarrollo propio. Muchas de estas tecnologías de middleware también absorben la esencia de la tecnología de código abierto. A menudo se puede ver la sombra de la primavera en su código fuente. La poderosa influencia del ecosistema de Spring, incluso el equipo nacional de tecnología Java de primera clase, pasará mucho tiempo para estudiar y aprender el código fuente de Spring Framework.

  Cuando las personas que desarrollan Java mencionan Spring, las primeras palabras que vienen a la mente son "IoC", "AOP", "Spring MVC", "Spring Security", etc., e incluso tienen la sensación de "no Spring no es Java" .

  De hecho, hoy Spring ya no es un simple marco de programación. Desde el "marco SSH" inicial hasta hoy, Struts e Hibernate están casi desapareciendo desde la perspectiva del programador, pero Spring se ha convertido en un Ecología muy grande y completa.

  Por lo tanto, a menos que se especifique específicamente como un marco específico en el ecosistema de Spring, la mención de "Spring" debería referirse a todo el ecosistema de Spring.

  No es exagerado decir que, mientras los programadores de Java sean competentes en Spring, habrán dominado la esencia del desarrollo de Java.

  Spring Framework

  En el último número, presentamos spring y springmvc. Para completar el contenido, permítanme repetirlo nuevamente.

  El proyecto Spring Framework es la base de todo el ecosistema de Spring y contiene las funciones centrales de Spring, tales como: IoC, AOP, Spring MVC, etc. Otros proyectos deben confiar en Spring Framework.

  Además, también debe tenerse en cuenta que el proyecto Spring Framework contiene múltiples submódulos, tales como: spring-core, spring-beans, spring-context, spring-aop, spring-web, spring-webmvc, etc.

  De hecho, el proyecto Spring Framework es una arquitectura modular, y existen dependencias entre los módulos. El Spring MVC que más usamos en el proyecto de fondo web Java es en realidad el módulo spring-webmvc, y sus dependencias con otros módulos son las siguientes:

  imagen

  Obviamente, el módulo spring-webmvc depende de spring-context, spring-aop y spring-web.

  Dependencia del módulo spring-webmvc

  imagen

  Springboot

  Cuando entré en contacto con Springboot por primera vez, o cuando estaba haciendo una pasantía, estábamos haciendo una nube privada, utilizando el proyecto de código abierto OpenStack. OpenStack en sí contiene muchos componentes, algunos son responsables de la red, algunos son responsables del almacenamiento, Algunos son responsables de la programación, etc. Todos sus métodos de implementación generales están distribuidos, por lo que es normal hacer divisiones de microservicios.

  Por supuesto, en ese momento, no tenía un concepto de microservicios y solo un lado de Springboot. Solo sabía que mi maestro me dijo que Springboot se usaba para microservicios. Permítanme ver el código de un proyecto Springboot. Así que lo miré por un momento y descubrí que esta cosa y la primavera no parecen ser diferentes, excepto que el método de inicio es un poco extraño, el archivo de configuración xml es menor y parece que no es muy diferente. .

  De hecho, también es cierto. Spring Boot es un proyecto de andamiaje basado en Spring. Simplifica muchas características de spring y springmvc, facilitando a los principiantes comenzar con el desarrollo de spring.

  Por ejemplo, integra Tomcat incorporado de forma predeterminada, configura anotaciones, admite la integración rápida de componentes de desarrollo de terceros (como MyBatis), reduce en gran medida el umbral para usar Spring y tiene muchas funciones incorporadas que se pueden usar directamente en el entorno de producción.

  En términos simples, springboot es una capa fuera de springmvc, que protege algunos de los detalles de implementación complicados de springmvc, así como engorrosos procesos de configuración y desarrollo, y convierte algunas cosas convencionales en especificaciones, formando un llamado iniciador springboot.

  imagen

  Este tipo de marco que admite un desarrollo rápido y una herencia rápida obviamente mejora la eficiencia del desarrollo, por lo que actualmente es la única opción para desarrollar proyectos de arquitectura de microservicios.

  Sin embargo, debe enfatizarse aquí que springboot no es equivalente a microservicios. Es solo un contenedor de aplicaciones en el mejor de los casos. Si compara microservicios con una red grande, entonces las aplicaciones springboot son solo un pequeño punto en esta red, y los microservicios deben pasar Las pasarelas de servicio, el equilibrio de carga, los centros de registro y otros medios conectan estos puntos y admiten la degradación y la fusión de los servicios durante el funcionamiento de esta red (corte la conexión a un punto determinado)

  Vale la pena señalar que muchas personas que acaban de entrar en contacto con Spring Boot lo han hecho mítico, aunque usar Spring Boot puede desarrollar rápidamente un proyecto robusto y de ejecución directa, pero su núcleo y base provienen del Spring Framework.

  Para los desarrolladores que dependen en gran medida de Spring, primero debe pasar por Spring Framework. Siempre y cuando domine realmente los principios de implementación de cada módulo en Spring Framework, también resolverá los problemas encontrados en el desarrollo real del uso de Spring Boot.

  Primero, ¿qué son los microservicios?

  Déjame decirte que no he tocado Springcloud en el sentido real. La razón es muy simple. La pila de tecnología que utilicé para el trabajo de desarrollo ha sido contratada por el middleware interno de Alibaba. Todas las tecnologías que usas en Springcloud son Alibaba tiene un conjunto correspondiente o incluso algunos conjuntos de implementaciones. Algunos de ellos han sido de código abierto, y otros solo se usan internamente. De todos modos, no se puede usar la tecnología de código abierto en Alibaba, incluso si es tan fuerte como Springcloud.

  De hecho, además de Ali, como los gigantes de Java como Meituan y JD.com, también mantendrán su propio conjunto de pilas tecnológicas de desarrollo propio. Después de todo, sus propias cosas están a su disposición y los problemas pueden repararse de inmediato. No es vergonzoso tener tecnología, en caso de que algún día haya un error y la comunidad de código abierto le pida al abuelo que demande a la abuela.

  Aunque no he contactado con Springcloud en sentido estricto, el conjunto de microservicios es en realidad un cambio de sopa.

  Echemos un vistazo a la introducción de Baidu Encyclopedia a microservicios y springcloud.

  Los llamados microservicios son el producto final bajo la arquitectura SOA. El objetivo del diseño de esta arquitectura es desmembrar el negocio y permitir que los servicios se ejecuten de forma independiente. Principios de diseño de microservicios: 1. Hacen su propio trabajo 2. Servicio de alta disponibilidad y escalabilidad.

  Microservices es una arquitectura de software emergente, que consiste en dividir una gran aplicación y servicio en docenas de microservicios de soporte. Una estrategia de microservicio puede facilitar el trabajo, puede extender un solo componente en lugar de toda la pila de aplicaciones para cumplir con los acuerdos de nivel de servicio.

  De hecho, aquí está bastante claro que la función de los microservicios es dividir la enorme aplicación anterior en múltiples componentes, y cada componente realiza sus propias tareas. En comparación con un solo servicio grande, los beneficios de los microservicios son demasiado. Por ejemplo, se pueden implementar y probar por separado para brindar un mejor soporte a DevOps, hacer un uso más efectivo de los recursos de la máquina y hacer que sea más fácil garantizar la escalabilidad y la disponibilidad. La siguiente figura es el proceso de evolución de la arquitectura de microservicios.

  imagen

  Si todavía no entiendes, te lo explicaré poco a poco.

  1. En términos de implementación y eficiencia de I + D, la implementación de una aplicación a gran escala es muy lenta. Se necesita medio día para cambiar un poco de código. La eficiencia de la iteración de I + D es concebible, mientras que la aplicación de microservicio tiene un cuerpo pequeño y una implementación rápida. Los microservicios se pueden desarrollar e iterar independientemente, y la eficiencia es naturalmente alta.

  2. En términos de uso de recursos y eficiencia de prueba, una aplicación a gran escala a menudo toma una gran brecha entre los límites superior e inferior de los recursos. Muchas veces tenemos que asignarle una gran cantidad de recursos, y las aplicaciones de microservicio ahora admiten la implementación en contenedores. El mayor beneficio es apoyar la expansión elástica de los recursos y mejorar la eficiencia en la utilización de los recursos. Para las pruebas, una aplicación grande a menudo necesita volver al código de la aplicación con un pequeño cambio. El costo puede ser imaginado. Después de dividir los microservicios, la cantidad de pruebas se reducirá considerablemente.

  Además, los microservicios tienen muchas ventajas: por ejemplo, es más fácil solucionar problemas, es más fácil de ampliar y escalar, y puede evitar problemas de un solo punto.

  La siguiente imagen compara nuestra vida diaria con microservicios, de hecho, nuestra vida no está compuesta de tales engranajes.

  imagen

  Por supuesto, los microservicios no son todas ventajas, y naturalmente hay desventajas.

  Por ejemplo, la división de microservicios requiere mucho costo. En primer lugar, la aplicación debe dividirse. El servicio local original debe convertirse en un servicio distribuido, y los servicios distribuidos deben enfrentar más problemas que los servicios locales. Afortunadamente, los microservicios El marco ha resuelto algunos de estos problemas.

  Además, la división de microservicios no es solo la división de aplicaciones, sino también la división de las fuentes de datos correspondientes, lo que implica algunas soluciones para bases de datos distribuidas, como sub-bases de datos y tablas, como transacciones distribuidas, etc. Es decir, la división de microservicios inevitablemente introduce muchos problemas que solo se encuentran en un entorno distribuido, incluida la consistencia de datos, el particionamiento de red, etc.

  imagen

  springcloud: la mejor solución de código abierto para microservicios

  Bueno, dado que la división de microservicios traerá tantos problemas, los desarrolladores de los marcos de microservicios naturalmente pensaron en ello, por lo que utilizarán varios métodos para ayudar a los desarrolladores a resolver estos problemas. Echemos un vistazo a springcloud. Como hacerlo

  Spring Cloud es una colección ordenada de una serie de marcos. Utiliza la conveniencia de desarrollo de Spring Boot para simplificar sutilmente el desarrollo de la infraestructura del sistema distribuido, como el registro de descubrimiento de servicios, el centro de configuración, el bus de mensajes, el equilibrio de carga, el interruptor de circuito, el monitoreo de datos, etc., puede usar Spring

  El estilo de desarrollo de Boot permite el inicio y la implementación con un solo clic.

  Spring Cloud no repite la fabricación de ruedas. Solo combina los marcos de servicio maduros y prácticos desarrollados por varias compañías. El estilo Spring Boot de reencapsulación protege los complejos principios de configuración e implementación, y finalmente desarrolla El autor dejó un conjunto de kits de herramientas de desarrollo de sistemas distribuidos que son simples de entender, fáciles de implementar y fáciles de mantener.

  imagen

  Obviamente, springcloud está preparado, y los problemas causados ​​por la división de microservicios se pueden resolver uno por uno.

  Por ejemplo, para dividir los servicios locales en servicios distribuidos, springcloud proporciona un centro de registro de servicios y un centro de configuración, y una puerta de enlace de servicios unificada, lo que hace que los servicios distribuidos sean tan simples y fáciles de usar como los servicios locales.

  Al mismo tiempo, tecnologías como el bus de mensajes y el equilibrio de carga han resuelto algunos de los problemas de alta concurrencia en entornos distribuidos.

  Además, las funciones como el monitoreo de datos, la fusión y la limitación de corriente, el seguimiento de enlaces distribuidos, la tolerancia a fallas del clúster, etc., tienen soluciones correspondientes en Springcloud.

  Nuevamente, springcloud es el marco de microservicios, y springboot es solo un andamio para el desarrollo rápido de aplicaciones web. La base de Spring Cloud es Spring Boot. Basado en Spring Boot, el proceso de desarrollo de componentes de microservicio puede simplificarse enormemente.

  Hasta ahora, hemos introducido la mayoría de los contenidos del cubo familiar de primavera, espero que estos contenidos sean útiles para que aprendas la tecnología ecológica de primavera en el futuro.

  Recursos recomendados

  De hecho, los mejores recursos técnicos de la primavera están en el sitio web oficial: https://spring.io/

  Los estudiantes con buen inglés pueden ir directamente a los documentos oficiales.

  Libros

  Combate Spring Boot, Ding Xuefeng (traductor)

  Análisis en profundidad del código fuente de Spring

  Video

  Aquí he compilado algunos recursos de video bastante buenos para compartir con ustedes. Para más detalles, responda "primavera" en la cuenta pública [Programador Huang Xiaoxie] para ver

  Blog

  Almacén de tecnología Java "Guía de revisión del programador Java"

  https://github.com/h2pl/Java-Tutorial

  Integre contenido de aprendizaje Java de alta calidad en toda la red para ayudarlo a revisar Java desde la sistematización básica a la avanzada

  Guía de entrevista

  La mejor guía de entrevistas de Java en toda la red, con un total de más de 200 páginas, es muy práctica, ya sea que se use para revisión o para prepararse para entrevistas.

  Responda a "PDF" en la cuenta pública [Java Technology Rivers and Lakes] para recibirlo de forma gratuita.

  Escribe al final

  Si este artículo es útil para usted, no sea tacaño con su Kazajstán "apuesto". Reenviar su círculo de amigos es mi mayor apoyo. Su apoyo es mi mayor aliento.

Supongo que te gusta

Origin www.cnblogs.com/jiuq521/p/12702778.html
Recomendado
Clasificación