Aprenda SpringCloudAlibaba (2) a dividir y escribir microservicios

Tabla de contenido

1. Arquitectura monolítica VS arquitectura de microservicio

1. Arquitectura monolítica

(1) Ventajas de la arquitectura monolítica

(2).Desventajas de la arquitectura monolítica.

 2.Arquitectura de microservicio

 (1) Características de los microservicios

 (2) Diagrama de arquitectura de microservicio

 (3) Ventajas de los microservicios

 (4) Desventajas de los microservicios

 (5) Escenarios aplicables para microservicios

 (6) Escenarios donde los microservicios no son aplicables 

2. Microservicios divididos

1. División de microservicios: metodología

(1) Diseño impulsado por dominio

(2) Orientado a objetos (Por nombre/por verbo) 

2 División de microservicios: de uso común

(1) División según responsabilidades

(2) Dividido por la versatilidad

3 División de microservicios: granularidad razonable

3. Proceso real del proyecto


1. Arquitectura monolítica VS arquitectura de microservicio

1. Arquitectura monolítica

(1) Ventajas de la arquitectura monolítica

  • arquitectura sencilla
  • Fácil de desarrollar, probar e implementar

(2).Desventajas de la arquitectura monolítica.

  • La redundancia de código y la calidad desigual generan una alta complejidad de operación y mantenimiento
  • La implementación es lenta, completa, de baja frecuencia y más obvia cuando la cantidad de código es grande.
  • Capacidades de expansión limitadas
  • Al obstaculizar la innovación tecnológica, el riesgo de refactorización del código es extremadamente alto

 2.Arquitectura de microservicio

 (1) Características de los microservicios

  • Cada microservicio puede ejecutarse en su propio proceso, lo que significa que cada microservicio tiene su propio Tomcat.
  • Cada microservicio puede ejecutarse de forma independiente y trabajar en conjunto para construir todo el sistema.
  • Cada servicio se desarrolla para una empresa independiente y un microservicio solo se centra en una función específica, como la gestión de pedidos y la gestión de usuarios.
  • Se pueden utilizar diferentes lenguajes y tecnologías de almacenamiento de datos (adecuados para la situación del proyecto y la fuerza del equipo)
  • Los microservicios se comunican entre sí a través de mecanismos de comunicación ligeros, como llamadas a través de API REST. Mecanismo de comunicación liviano, el protocolo de comunicación debe ser liviano y multiplataforma
  • Mecanismo de implementación totalmente automatizado. Automatice compilaciones, implementaciones, pruebas y más.

 (2) Diagrama de arquitectura de microservicio

  (3) Ventajas de los microservicios

  • Un solo servicio es más fácil de desarrollar/mantener, un solo servicio es un negocio limitado.
  • Un único microservicio se inicia rápidamente
  • Las modificaciones locales son fáciles de implementar
  • Pila de tecnología ilimitada
  • Escalar según demanda

 (4) Desventajas de los microservicios

  • Los requisitos de operación y mantenimiento son altos y se deben operar y mantener varios frascos, por lo que se requiere un mecanismo de implementación de operación y mantenimiento completamente automático.
  • La complejidad inherente de la distribución.
  • Trabajo duplicado, en el mismo lenguaje de desarrollo se pueden extraer un total de módulos comunes, pero es imposible implementarlo en diferentes lenguajes y aún hay que repetirlo.

 (5) Escenarios aplicables para microservicios

  • Proyectos grandes/complejos. Si su aplicación puede manejarse con una arquitectura monolítica, no hay necesidad de exagerarla.
  • Es necesaria una iteración rápida.
  • Con una alta presión de acceso, los microservicios están descentralizados.

 (6) Escenarios donde los microservicios no son aplicables 

  • El negocio es estable y la demanda difícilmente cambiará
  • El ciclo de iteración es largo y no hay necesidad de iteración rápida.

2. Microservicios divididos

1. División de microservicios: metodología

(1) Diseño impulsado por dominio ( Domain D riven Design )

Se recomiendan dos libros:

"El creador de DDD"

"Implementación del diseño basado en dominios"

(2) Orientado a objetos ( por nombre/  por verbo

Dividido por sustantivo o verbo

2 División de microservicios: de uso común

(1) División según responsabilidades

Planifique los límites de responsabilidad de los microservicios y céntrese únicamente en las empresas dentro del alcance de las responsabilidades, como los servicios de pedidos.

(2) Dividido por la versatilidad

Convierta funciones universales en microservicios, como el centro de usuarios y el centro de mensajes. Las plataformas grandes y pequeñas de Alibaba en realidad se basan en la universalidad, pero la plataforma intermedia es una agregación de múltiples microservicios.

3 División de microservicios: granularidad razonable

  • satisfacer bien el negocio
  • Una sensación de felicidad: el mantenimiento de los microservicios por parte del equipo no se sentirá tan redundante y complicado como una sola entidad, y la implementación será eficiente.
  • Iteración incremental, cada microservicio es relativamente independiente y cada versión es solo un número limitado de microservicios.
  • Evolución continua, optimización de la tecnología, riesgo controlable.
  • La división de microservicios es dinámica y puede aumentar o disminuir con el tiempo.

3. Proceso real del proyecto

1. Analizar negocios (diagramas de flujo, diagramas de casos de uso, diagramas de arquitectura, etc.) La tarea principal es el modelado de negocios y la determinación de la arquitectura.

2. Determinar el proceso de negocio (revisión)

3. API de diseño (qué API necesito)/modelo de datos (diseño de estructura de tabla | diagrama de clases | diagrama ER, etc.)

4.Escribir API

Supongo que te gusta

Origin blog.csdn.net/heni6560/article/details/128846305
Recomendado
Clasificación