Solución de arquitectura de sistemas distribuidos: Dubbo

¿Qué es un sistema distribuido?

  1. "Un sistema distribuido es una colección de computadoras independientes que aparecen para los usuarios como un solo sistema relacionado"
  2. Un sistema distribuido es un sistema de software construido en una red. En pocas palabras: ¡Múltiples (diferentes responsabilidades) personas trabajan juntas para completar una cosa!

estructura del sistema

Arquitectura de aplicación única

  1. Cuando el gasto del sistema es pequeño, solo se necesita una aplicación para implementar todas las funciones juntas (todos los servicios se colocan en un tomcat), lo que reduce los nodos y los costos de implementación;
  2. En este momento, el marco de acceso a datos (ORM) utilizado para simplificar la carga de trabajo de agregar, eliminar, modificar y verificar es la clave, ORM: Asignación relacional de objetos (Object Relational Mapping)

inserte la descripción de la imagen aquí

  1. Ventajas de una sola arquitectura: El desarrollo de proyectos pequeños es rápido y de bajo costo, arquitectura simple, fácil de desarrollar y probar
  2. Desventajas de una sola arquitectura: los módulos de proyectos grandes están seriamente acoplados, son difíciles de desarrollar y mantener, el negocio principal y el negocio de borde se mezclan, los problemas se afectan entre sí y es difícil agregar nuevos negocios

Arquitectura de aplicaciones verticales

  1. Cuando el número de visitas aumenta gradualmente, la aceleración generada por la adición de una sola aplicación a la máquina se vuelve cada vez más pequeña y la aplicación se divide en varias aplicaciones irrelevantes para mejorar la eficiencia;
  2. El módulo grande se divide en varios módulos pequeños no relacionados según el modo en capas de MVC, y cada módulo pequeño tiene un servidor independiente
  3. En este momento, el framework web (MVC) utilizado para acelerar el desarrollo de las páginas front-end es la clave, ya que cada pequeña aplicación tiene una página independiente.
    inserte la descripción de la imagen aquí
  4. MVC: controlador de vista de modelo (controlador de vista de modelo)
  5. Desventajas de la arquitectura de aplicación vertical: no hay intersección entre los módulos y los módulos comunes no se pueden reutilizar.

Arquitectura de servicios distribuidos

  1. Cuando hay más y más aplicaciones verticales, la interacción entre las aplicaciones es inevitable. El negocio principal se extrae como un negocio independiente y se forma gradualmente un centro de servicio estable, para que la aplicación front-end pueda responder más rápidamente.
  2. En este momento, es la clave para que los usuarios mejoren la reutilización empresarial e integren las llamadas remotas del marco de servicios distribuidos (RPC).

inserte la descripción de la imagen aquí

  1. RPC: Entre servidores de aplicaciones independientes, depende de RPC (Romote Procedure Call) para llamar

Arquitectura de computación móvil

  1. Cuando hay más y más servicios, problemas como la evaluación de la capacidad y el desperdicio de recursos de servicios pequeños aparecen gradualmente. En este momento, es necesario agregar un centro de programación para administrar la capacidad del clúster en tiempo real en función de la presión de acceso y mejorar la utilización del clúster. ;
  2. En este momento, el centro de gobierno y programación de recursos (SOA) para mejorar la utilización de la máquina es la clave;inserte la descripción de la imagen aquí
  3. SOA: Arquitectura Orientada a Servicios (Service-Oriented Architecture), un entendimiento simple es "gobierno de servicios", por ejemplo: "despachador" en una estación de autobuses

Introducción a Dubo

  1. Dubbo es un marco de servicio distribuido, un proyecto de código abierto de Alibaba, y ahora se entrega a apache para su mantenimiento.
  2. Dubbo se compromete a mejorar el rendimiento y la transparencia de las soluciones de invocación de servicios remotos RPC y las soluciones de gobierno de servicios SOA.

El concepto de RPC

  1. RPC [Llamada a procedimiento remoto] se refiere a la llamada a procedimiento remoto, que es un método de comunicación entre procesos
  2. Principio básico de comunicación RPC
    1. Serializar el objeto en el cliente
    2. El marco de comunicación subyacente utiliza netty (socket basado en el protocolo tcp) para enviar objetos serializados al proveedor de servicios
    3. Después de que el proveedor de servicios obtiene el archivo de datos a través del socket, realiza la deserialización para obtener el objeto que se va a operar.
    4. Una vez que se completa la operación de datos del objeto, el nuevo objeto se serializa y luego se devuelve al cliente a través del socket del proveedor de servicios.
    5. El cliente obtiene los datos serializados, los deserializa nuevamente y obtiene el objeto de datos más reciente. En este punto, se completa una solicitud
      inserte la descripción de la imagen aquí

rol de nodo dubbo

inserte la descripción de la imagen aquí

nodo Descripción del rol
Proveedor proveedor de servicio
Consumidor consumidor de servicios
Registro Registro para registro y descubrimiento de servicios
Monitor Centro de Estadísticas de Servicios de Monitoreo
Envase contenedor de ejecución de servicios

Relación de llamada de nodo Dubbo

  1. El contenedor de servicios es responsable de iniciar, cargar y ejecutar el proveedor de servicios;
  2. Cuando el proveedor de servicios inicia, registra los servicios que brinda con el centro de registro;
  3. Cuando el consumidor del servicio comienza, se suscribe al centro de registro para los servicios que necesita;
  4. El centro de registro devuelve la lista de direcciones del proveedor de servicios al consumidor. Si hay un cambio, el centro de registro enviará los datos del cambio al consumidor en función de la conexión larga;
  5. El consumidor del servicio, de la lista de direcciones de proveedores, selecciona un proveedor para llamar en función del algoritmo de equilibrio de carga suave y, si la llamada falla, selecciona otro proveedor para llamar;
  6. Los consumidores y proveedores de servicios acumulan el número de llamadas y el tiempo de llamada en la memoria y envían regularmente datos estadísticos al centro de monitoreo cada minuto;

Terminal de gestión de instalación Dubbo

  1. Modifique el archivo de configuración application.properties
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí
  2. En el directorio dubbo-admin, use Maven para empaquetar:mvn clean package
  3. Ejecute el archivo jar en el directorio de destino:D:\dubbo-admin-master\dubbo-admin\target>java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    inserte la descripción de la imagen aquí
  4. Abra el navegador: visite: http://localhost:7001/ cuenta contraseña raíz raíz;

inserte la descripción de la imagen aquí

Centro de estadísticas de monitoreo de Dubbo

  1. 修改dubbo-monitor-simple-2.5.3,conf\dubbo.properties
    inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

  1. Ejecute bin\start.bat para abrir el Centro de Monitoreo de Dubbo

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

  1. Dirección de acceso: http://localhost:8080/inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43408367/article/details/128811703
Recomendado
Clasificación