Tema especial (1) "Arquitectura de microservicios de SpringCloud Alibaba": Introducción a los microservicios

1. Descripción general de los microservicios

1.1. Qué es un microservicio

La arquitectura de microservicios ( MicroServicesArchitecture) es un vocabulario de alta frecuencia que ha aparecido en el campo de la arquitectura de software en los últimos años, es un modelo de arquitectura basado en la evolución de la arquitectura SOA tradicional. Aboga por dividir la arquitectura monolítica tradicional o las aplicaciones y servicios monolíticos en la arquitectura distribuida en servicios de grano más pequeño, que llamamos Microservicios. Este tipo de servicio se ejecuta de forma independiente en un proceso independiente y está aislado de otros procesos. Los servicios generalmente se comunican con RestFulAPI según el protocolo de comunicación Http. Cada microservicio se construye en torno a un negocio específico. Se puede desarrollar, construir, lanzar y implementado en el entorno de producción y el entorno de producción sin afectar a otras empresas dependientes.

MicroserviceEl concepto de microservicios ( ) surgió en 2012. Como una forma de acelerar el desarrollo de aplicaciones web y móviles, ha atraído la atención de todas las partes en 2014, y se puede decir que 2015 es el primer año de
microservicios ; cada vez más Cuantos más foros, comunidades, blogs y gigantes de la industria de Internet comienzan a debatir y practicar microservicios, se puede decir que esto ha promovido aún más el desarrollo y la innovación de los microservicios. Martin Fowler ha contribuido a la popularidad de los microservicios. Este anciano es un hombre extraño, especialmente bueno en la inducción abstracta y en la creación de conceptos. En particular, el nuevo término microservicios tiene una característica: entiendes tan pronto como explicas, no sabes tan pronto como preguntas y peleas tan pronto como lo discutes.

Martin Fowler es un experto en OO de renombre internacional, uno de los fundadores de los métodos de desarrollo ágiles y actualmente es el científico jefe de ThoughtWorks. Es el mayor experto mundial en análisis y diseño orientado a objetos, UML, patrones, metodología de desarrollo de software, XP, refactorización, etc., y actualmente es el científico jefe de ThoughtWorks. ThoughtWorks es una empresa dedicada al desarrollo e integración de aplicaciones empresariales. Ya en la década de 1980, Fowler fue un defensor del uso de la tecnología de objetos para crear aplicaciones empresariales de varios niveles. Es autor de varios libros clásicos: "Enterprise Application Architecture Patterns", "UML Essence" y "Refactoring".
Inserte la descripción de la imagen aquí

URL del artículo: https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa
URL de traducción al chino: http://blog.cuicc.com/blog/2015/07/22/microservices/

  • La descripción general de los microservicios de Martin Fowler es la siguiente :
    en la actualidad, no existe una definición uniforme y estándar para la industria de los microservicios (aunque no existe una definición precisa de este estilo arquitectónico). Pero, en términos generales, la arquitectura de microservicio es un patrón arquitectónico o un estilo arquitectónico. Defiende la división de una sola aplicación en un conjunto de pequeños servicios. Cada servicio se ejecuta en su propio proceso independiente. Se coordinan y cooperan entre sí para proporcionar a los usuarios los mejores valor. Los servicios utilizan un mecanismo de comunicación ligero para comunicarse entre sí (normalmente API RESTful basada en HTTP). Cada servicio se basa en un negocio específico y se puede implementar de forma independiente en entornos de producción, entornos similares a la producción, etc. Además, debe evitarse en la medida de lo posible un mecanismo de gestión de servicios unificado y centralizado. Para un servicio específico, se deben seleccionar el lenguaje y las herramientas adecuadas de acuerdo con el contexto empresarial para construirlo. Se puede lograr una gestión centralizada muy ligera. Para coordinar estos servicios. Puede usar diferentes idiomas para escribir servicios o puede usar diferentes almacenes de datos.
    Inserte la descripción de la imagen aquí

  • Comprensión desde una perspectiva técnica :
    el núcleo de los microservicios es dividir la aplicación tradicional de ventanilla única en un servicio de acuerdo con la empresa y desacoplarla por completo. Cada microservicio proporciona un servicio de una única función empresarial y un servicio hace un servicio. Desde un punto de vista técnico, es un proceso pequeño e independiente, similar al concepto de proceso, que puede ser iniciado o destruido por sí mismo, y tiene su propia base de datos independiente.

1.2. Ventajas de los microservicios

  • Reducir la complejidad de un solo servicio El
    negocio complejo previamente acoplado se divide en un solo servicio, evitando la acumulación interminable de complejidad original. Cada microservicio se centra en una única función y expresa claramente el límite del servicio a través de una interfaz bien definida.

  • Implementación independiente
    Debido microservicios tienen procesos en ejecución independientes, cada uno microService puede ser desplegado de forma independiente. Cuando el negocio es iterativo, solo es necesario lanzar la iteración de los servicios relacionados, lo que reduce la carga de trabajo de las pruebas y también reduce el riesgo de la liberación del servicio.

  • Alta tolerancia a fallas
    En la arquitectura de microservicios, cuando falla un componente, la falla se aislará en un solo servicio. Reduzca el daño causado por errores mediante la limitación de corriente, la fusión, etc., y garantice el funcionamiento normal del negocio principal.

  • Escalabilidad
    Las aplicaciones de arquitectura monolítica también pueden lograr una expansión horizontal, lo que significa que toda la aplicación se puede replicar por completo en diferentes nodos. Cuando los diferentes componentes de la aplicación tienen diferencias en los requisitos de expansión, la arquitectura de microservicio refleja su flexibilidad, porque cada servicio se puede expandir de forma independiente según las necesidades reales.

2. Marco común de microservicios

2.1. Alibaba dubbo

El marco de microservicio de código abierto de Ali es un marco de Java RPC de código abierto ligero y de alto rendimiento que proporciona tres capacidades principales: invocación de método remoto orientado a la interfaz, tolerancia inteligente a fallas y equilibrio de carga, y registro y descubrimiento automático de servicios. Ha entrado oficialmente en la incubadora de Apache.
Inserte la descripción de la imagen aquí

Sitio web oficial: http://dubbo.apache.org/zh/

concepto principal
Inserte la descripción de la imagen aquí

Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心

2.3 Nube de primavera

SpringCloud es un conjunto de marcos para implementar microservicios basados ​​en SpringBoot. Proporciona la gestión de la configuración, el descubrimiento de servicios, el disyuntor, el enrutamiento inteligente, el micro agente, el bus de control, el bloqueo global, la campaña de decisiones, la sesión distribuida y la gestión del estado del clúster necesarios para el desarrollo de microservicios. Lo más importante es que, si se usa con el framework de arranque de primavera, te hará desarrollar un servicio en la nube con una arquitectura de microservicio muy conveniente. SpringBoot tiene como objetivo simplificar la creación de aplicaciones y servicios Spring a nivel de producto, simplificar los archivos de configuración, utilizar un servidor web integrado y contener muchas funciones de microservicio listas para usar.
Inserte la descripción de la imagen aquí
Sitio web oficial: https://spring.io/projects/spring-cloud

Componentes principales
Inserte la descripción de la imagen aquí

Netflix Eureka 服务注册与发现
Netflix Ribbon 客户端负载均衡
Netflix Hystrix 服务熔断
Netflix Zuul 服务网关
Spring Cloud Config 分布式配置
……

2.4.SpringCloud Alibaba

SpringCloud Alibaba es una solución de arquitectura de microservicio de código abierto de Alibaba Group.
La arquitectura de microservicio consiste en dividir una aplicación en múltiples sub-aplicaciones para un mejor desarrollo del sistema distribuido, y cada servicio es un subproyecto que puede ejecutarse de forma independiente. Cubre una gran cantidad de contenido, que incluye: gobernanza del servicio, gestión de la configuración, limitación y degradación actual, y N multicomponentes que admiten el ecosistema de código abierto Ali (Dubbo, RocketMQ, etc.).

Inserte la descripción de la imagen aquí
Sitio web oficial: https://spring.io/projects/spring-cloud-alibaba/

Componentes principales

Sentinel:阿里巴巴开源产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Nacos:阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
RocketMQ:Apache RocketMQ™ 基于 Java 的高性能、高吞吐量的分布式消息和流计算平台。
Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架。
Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。
……

3. Ecosistema de arquitectura de microservicios

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/BruceLiu_code/article/details/114391286
Recomendado
Clasificación