Red de conocimiento informático - Conocimiento del nombre de dominio - Comenzar con los microservicios es suficiente

Comenzar con los microservicios es suficiente

Cuando entré por primera vez en la industria del software, todavía era la era de las aplicaciones monolíticas. El concepto de separación de front-end y back-end aún no era popular. El desarrollo requería dedicar mucho tiempo a "poderosos". " JSP. En ese momento, SOA ya se consideraba Una nueva tecnología. Los microservicios son tan populares hoy en día. ¿Qué producto de Internet no dice que es una arquitectura de microservicios?

Sin embargo, la comprensión de los microservicios por parte de todos es diferente. Este artículo habla principalmente sobre mi comprensión de los microservicios y cómo construir una arquitectura de microservicios clásica. El propósito es aclarar algunas de mis propias ideas. ¡Las correcciones son bienvenidas si tienes opiniones diferentes!

En primer lugar, ¿qué son los microservicios?

Relativamente hablando, para entender qué son los microservicios, primero podemos entender qué es una aplicación monolítica. En los "tiempos antiguos", antes de que se introdujera el concepto de microservicios, las aplicaciones de software a menudo desarrollaban y empaquetaban todas las funciones de la aplicación. La arquitectura de la aplicación B/S a menudo se veía así:

Sin embargo, cuando los usuarios Mientras. Al acceder a la aplicación, el usuario no puede acceder a la aplicación.

Sin embargo, ¿qué sucede si el número de visitas de usuarios es demasiado grande para que lo admita un solo servidor?

Creo que la evolución de cualquier tecnología es rastreable. La aparición de cualquier tecnología nueva es para resolver las necesidades que la tecnología original no puede resolver. Por lo tanto, la aparición de microservicios se debe al monolito original. La arquitectura de la aplicación ya no puede satisfacer las necesidades técnicas de los productos de Internet actuales.

Existe otro concepto anterior a la arquitectura de microservicios: SOA (Arquitectura orientada a servicios): arquitectura orientada a servicios. Creo que SOA es sólo una metodología de modelos arquitectónicos, no un estándar arquitectónico claro y riguroso. Es sólo que detrás de SOA hay un modelo de referencia equivalente al modelo de referencia SOA de The Open Group, es decir, estrictamente de acuerdo con el TOG. - La arquitectura realizada según estándares SOA es la arquitectura SOA real. SOA se propone basándose en la idea de una arquitectura orientada a servicios, por lo que los microservicios deben considerarse como la evolución de SOA, ¿verdad?

Aparte de la arquitectura, ¿qué tipo de servicios se consideran microservicios?

El núcleo de la arquitectura de microservicios es resolver el problema de gobernanza del servicio después de que la aplicación recibe el microservicio.

Una vez que se realiza el microservicio a la aplicación, el primer problema encontrado es el problema de descubrimiento de servicios. ¿Cómo descubre un microservicio otros microservicios? El método más simple es configurar las direcciones de otros microservicios dentro de cada microservicio, pero esto obviamente no es realista cuando la cantidad de microservicios es grande. Por lo tanto, debe utilizar uno de los componentes más importantes de la arquitectura de microservicios: el registro de servicios, donde se registran todos los servicios, y también puede obtener la lista de servicios actualmente disponibles desde el registro de servicios:

Después de resolver el problema de descubrimiento de servicios, es necesario resolver el segundo problema causado por la implementación distribuida de microservicios: la gestión de la configuración del servicio. Problemas de gestión de configuración. Cuando la cantidad de servicios excede un cierto nivel, si el archivo de configuración de cada servicio necesita mantenerse por separado dentro de cada servicio, el personal de operación y mantenimiento probablemente llorará. Luego, debe utilizar el segundo componente importante en la arquitectura de microservicios: el centro de configuración. La arquitectura de microservicios se vuelve así:

La gobernanza del servicio interno de la aplicación anterior, cuándo el cliente o la aplicación externa Qué hacer y cuándo. llamando a este servicio? El servicio A puede tener varios nodos y las direcciones de servicio del servicio A, el servicio B y el servicio C son diferentes. ¿Qué debo hacer con la verificación de autorización del servicio? En este momento, es necesario utilizar una puerta de enlace de servicio para proporcionar una entrada de servicio unificada y, finalmente, formar una arquitectura de microservicio típica:

Lo anterior es una arquitectura de microservicio típica, por supuesto, la gobernanza de servicios de microservicio. También implica una gran cantidad de contenido, por ejemplo:

Los marcos de microservicios actuales utilizados por las empresas nacionales incluyen principalmente Spring Cloud y Dubbo (o DubboX), pero Dubbo ha estado descontinuado durante dos años. Sin embargo, el cierre de Dubbo durante dos años ha dañado gravemente la confianza de los desarrolladores en Spring Cloud. Hay muchos artículos en Internet que comparan las ventajas y desventajas de estos dos marcos. ¿Qué marco debo elegir? Todavía tiene que basarse en las necesidades del negocio. El marco de negocios determina el marco técnico.

Los depósitos de la serie Spring Cloud proporcionan una variedad de componentes, que básicamente cubren todos los aspectos de la gobernanza de servicios de microservicios. Algunos componentes comunes de Spring Cloud se enumeran a continuación:

Este capítulo presentará. Cómo construir una arquitectura de microservicio típica basada en componentes relevantes de Spring Cloud.

Primero, cree un proyecto principal de Maven spring-cloud-examples para administrar las versiones del paquete de dependencia del proyecto. Dado que hay muchos componentes de Spring Cloud, para garantizar la compatibilidad entre diferentes componentes, las versiones de los componentes de Spring Cloud generalmente se administran a través de dependencias de Spring Cloud en lugar de introducir cada componente individualmente.

La configuración de pom.xml es la siguiente:

Consulte el servicio empresarial A anterior para crear otro servicio empresarial B.

Actualmente, hay muchas personas en Internet que dicen que la arquitectura de microservicios de próxima generación es Service Mesh. Los marcos principales de Service Mesh incluyen Linkerd e Istio. Entre ellos, Istio es compatible con grandes fábricas. tiene una mayor reputación. No tengo mucho contacto con Service Mesh, pero personalmente creo que no necesariamente se le puede llamar la arquitectura de microservicios de próxima generación. Puede considerarse como otra solución para la gobernanza de servicios. todavía es necesario seguir mirando.