Dubbo: control de tráfico

Esta tarea demuestra las capacidades de control de tráfico de Dubbo basadas en un simple sistema de microservicio de centro comercial en línea.

El diagrama de estructura del centro comercial en línea es el siguiente:

 

El sistema consta de 5 aplicaciones de microservicios:

  • La página de inicio del centro comercial frontend, como interfaz web para interactuar con los usuarios, proporciona servicios como inicio de sesión de usuario, visualización de productos y gestión de pedidos llamando a Usuario, Detalle, Pedido, etc.
  • Servicio de atención al usuario, responsable de la gestión de datos de los usuarios, verificación de identidad, etc.
  • Servicio de pedidos, que proporciona servicios como creación y consulta de pedidos, y se basa en el servicio de Detalles para verificar el inventario de productos y otra información.
  • Servicio de detalles del producto, que muestra información detallada del producto y llama al servicio de comentarios para mostrar registros de comentarios de los usuarios sobre los productos.
  • Comentario Servicio de comentarios, gestiona los datos de comentarios de los usuarios sobre los productos.

Implementar el sistema del centro comercial.

Para mayor comodidad, implementamos todo el sistema en el clúster de Kubernetes y ejecutamos el siguiente comando para completar la implementación del proyecto del centro comercial. El ejemplo del código fuente del proyecto está en dubbo-samples/task.

kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/All.yml

El diagrama completo de la arquitectura de implementación es el siguiente:

 

El servicio de pedidos tiene dos versiones, v1 y v2, y la v2 es una nueva versión lanzada después de la optimización del servicio de pedidos.

  • La versión v1 simplemente crea un pedido sin mostrar los detalles del mismo.
  • La versión v2 mostrará los detalles de la dirección de entrega del pedido después de que el pedido se haya creado correctamente.

Los servicios de Detalles y Comentarios también tienen dos versiones, v1 y v2, respectivamente. Usamos múltiples versiones para demostrar el efecto del desvío de tráfico.

  • La versión v1 atiende todas las solicitudes de forma predeterminada
  • La versión v2 simula un servicio implementado en una región específica, por lo que las instancias v2 tendrán una etiqueta específica

Ejecute el siguiente comando para asegurarse de que todos los servicios y pods se estén ejecutando normalmente:

$ kubectl get services -n dubbo-demo
$ kubectl get pods -n dubbo-demo

Para garantizar la integridad del sistema, además de varias aplicaciones de microservicio relacionadas con el centro comercial, el ejemplo también muestra en segundo plano el centro de configuración de registro de Nacos, la consola de administración de Dubbo y el sistema de seguimiento de enlaces completos de Skywalking.

$ kubectl get services -n dubbo-system
$ kubectl get pods -n dubbo-system

obtener dirección de acceso

Ejecute el siguiente comando para asignar el puerto del clúster al puerto local:

kubectl port-forward -n dubbo-demo deployment/shop-frontend 8080:8080
kubectl port-forward -n dubbo-system service/dubbo-admin 38080:38080
kubectl port-forward -n dubbo-system service/skywalking-oap-dashboard 8082:8082

En este punto, abra el navegador y acceda a través de la siguiente dirección:

  • Página de inicio del centro comercial http://localhost:8080
  • Consola de administración de Dubbo http://localhost:38080
  • Consola Skywalking http://localhost:8082

elemento de tarea

A continuación, intente agregar algunas reglas de control de tráfico al centro comercial mediante las siguientes tareas.

Ajustar el tiempo de espera

Al ajustar dinámicamente el período de tiempo de espera del servicio durante el período de ejecución, es posible abordar de manera efectiva problemas como los frecuentes tiempos de espera del servicio y el bloqueo del servicio causados ​​por configuraciones de tiempo de espera irrazonables y emergencias del sistema, y ​​mejorar la estabilidad del sistema.

Aumentar el número de reintentos.

Después de que falla la llamada de servicio inicial, volver a intentarlo puede mejorar efectivamente la tasa general de éxito de la llamada.

registro de acceso

El registro de acceso puede registrar toda la información de solicitud de servicio procesada por una determinada máquina dentro de un período de tiempo determinado, y habilitar dinámicamente el registro de acceso en el estado de ejecución es muy útil para la resolución de problemas.

Se prefiere la misma sala/área de computación.

Prioridad en la misma sala/área de computadoras significa que cuando una aplicación llama a un servicio, primero llama al proveedor de servicios en la misma sala/área de computadoras, evitando el retraso de la red causado por la interregión, reduciendo así el tiempo de respuesta de la llamada.

aislamiento ambiental

Al dividir un entorno de aislamiento lógico para una o más aplicaciones en el clúster, se puede utilizar en un entorno en escala de grises o en varios conjuntos de entornos de prueba.

enrutamiento de parámetros

Por ejemplo, el tráfico se enruta según la identificación del usuario y una pequeña cantidad de solicitudes de los usuarios se reenvían a la última versión del producto para verificar la estabilidad de la nueva versión y obtener comentarios de los usuarios sobre la experiencia del producto.

proporción de peso

Al ajustar dinámicamente el peso de una sola máquina o un grupo de máquinas a través de reglas, la distribución del tráfico de solicitudes se puede cambiar en el estado de ejecución para lograr un enrutamiento de tráfico proporcional dinámico.

degradación del servicio

El objetivo principal de la degradación del servicio es abordar estas dependencias débiles. Cuando las dependencias débiles no están disponibles o la llamada falla, la función se mantiene lo más completa posible devolviendo el resultado de la degradación.

Desvío fijo de la máquina

Ayuda a reproducir rápidamente problemas de desarrollo o en línea al reenviar solicitudes a una determinada máquina proveedora.

Supongo que te gusta

Origin blog.csdn.net/leesinbad/article/details/132504269
Recomendado
Clasificación