Exploración y práctica de la optimización del rendimiento del sistema de microservicio basada en el monitoreo de enlace completo de SkyWalking

Con el rápido avance de las comunidades de código abierto y la computación en la nube, los microservicios nativos de la nube, como arquitectura central de los nuevos sistemas de aplicaciones, se han utilizado cada vez más. Según la definición de microservicios de Gartner: "Un microservicio es un componente de aplicación de alcance limitado, estrechamente encapsulado, débilmente acoplado, desplegable de forma independiente y escalable de forma independiente".

Martin Fowler, el padre de los microservicios, los describió de la siguiente manera: En la actualidad, no existe una definición unificada y estándar para la industria de los microservicios.

Pero en términos generales, la arquitectura de microservicios es un patrón arquitectónico o un estilo arquitectónico que aboga por dividir una sola aplicación en un conjunto de pequeños servicios, cada uno de los cuales se ejecuta en su propio proceso independiente, se coordina entre servicios y coopera entre sí para Proporcionar a los usuarios el máximo valor. Los servicios se comunican entre sí mediante un mecanismo de comunicación ligero (normalmente una API RESTful basada en HTTP).

Cada servicio se basa en un negocio específico y se puede implementar de forma independiente en un entorno de producción, un entorno similar a la producción, etc. Este método puede mejorar la velocidad de respuesta, la flexibilidad y la elasticidad de implementación del sistema de aplicaciones y puede seguir el ritmo del desarrollo empresarial. iteración y optimización rápidas. En la actualidad, cada vez más sistemas de servicios de aplicaciones en la industria se han actualizado a una arquitectura de microservicios, lo que plantea nuevos desafíos para el sistema de monitoreo de aplicaciones existente.

Para promover la construcción y el desarrollo del sistema de monitoreo de aplicaciones de microservicios y explorar el camino práctico de la tecnología de monitoreo de enlace completo de microservicios en la industria, hemos introducido la plataforma observable de código abierto SkyWalking para recopilar monitoreo de enlace completo de microservicios sin código. intrusión Información, muestra visualmente la relación topológica del sistema de microservicio, rastrea el enlace de la transacción, identifica con precisión los cuellos de botella en el rendimiento y compensa la falta de herramientas y métodos de prueba existentes para el monitoreo de aplicaciones de enlace completo de microservicio.

Introducción a SkyWalking

SkyWalking es un sistema APM de plataforma observable de código abierto, una herramienta de monitoreo del rendimiento de aplicaciones diseñada para microservicios, arquitecturas nativas de la nube y arquitecturas basadas en contenedores (Docker, k8s, Mesos, etc.), que se utiliza para recopilar, analizar, agregar y visualizar. datos de Datos para servicios e infraestructura nativa de la nube.

Proporciona soluciones integradas para rastreo distribuido, análisis de telemetría de redes de servicios, agregación y visualización de métricas. SkyWalking se compone principalmente de las siguientes cuatro partes:

0 1 Agente Agente

Las sondas recopilan datos y los reformatean según los requisitos de SkyWalking (diferentes sondas admiten diferentes fuentes).

El Agente se ejecuta en cada instancia de servicio y es responsable de recopilar datos como el seguimiento y las métricas de la instancia de servicio, y luego los informa al backend de SkyWalking a través de gRPC para que el servidor OAP los analice. Este artículo presentará el programa del Agente en detalle en Capítulo 3.

0 2 servidor OAP

OAP (Plataforma de análisis de observabilidad, plataforma de análisis de observación) de SkyWalking es un sistema informático de análisis para analizar datos de muestreo de enlaces.

El servicio OAP necesita calcular principalmente los siguientes tres tipos de datos:

(1) Registrar datos

RecordStreamProcessor procesa los datos del enlace registrados, como el seguimiento, el registro de acceso y otros datos.

(2) Datos de métricas

Los datos del indicador registrados, la mayoría de los indicadores OAL (Lenguaje de análisis de observabilidad), generarán dichos datos, que serán procesados ​​por MetricsStreamProcessor.

(3) Datos principales

TopNStreamProcessor procesa los datos de muestreo periódicos registrados, como la recopilación periódica de SQL lento.

Los datos detallados, como los registros de seguimiento y acceso, tienen una cantidad relativamente grande de datos, pero no es necesario fusionarlos ni procesarlos, por lo que pueden procesarse dentro del nodo OAP. Estos datos detallados se almacenan en caché, se procesan por lotes asincrónicamente y se escriben en secuencia. .Escribir en almacenamiento externo (Storage).

La mayoría de los datos de indicadores definidos por OAL (lenguaje de análisis de observabilidad) deben agregarse y calcularse mediante microservicios, por lo que se dividen en dos pasos en el flujo informático del clúster OAP.

Paso 1: Recibir y analizar los datos enviados por el Agente y realizar la agregación de datos en el nodo de servicio OAP actual, utilizando OAL u otros modos de agregación.

Para los datos que no necesitan ser agregados, se escriben directamente en el almacenamiento externo (Almacenamiento); si son datos que necesitan ser agregados por microservicios, se envían al nodo de servicio OAP designado de acuerdo con ciertas reglas de enrutamiento.

Paso 2: recibir y analizar los datos procesados ​​en el paso 1, luego realizar un cálculo de agregación secundaria y escribir los datos del resultado en la memoria externa (Almacenamiento).

Para los dos pasos anteriores, el nodo de servicio OAP se divide en dos roles: Receptor (paso de procesamiento 1) y Agregador (paso de procesamiento 2).

De forma predeterminada, todos los nodos de servicio OAP tienen roles mixtos, que pueden realizar las operaciones del paso 1 y 2. En el escenario de implementación del sistema a gran escala de SkyWalking, se puede realizar una implementación de dos niveles de separación de roles de acuerdo con el tráfico de la red.

El servidor OAP también responde a la solicitud de consulta enviada por la interfaz UI de SkyWalking, consulta los datos previamente persistentes, genera un resultado de respuesta correcto y lo devuelve a la interfaz UI para su visualización.

0 3 Almacenamiento de almacenamiento de base de datos

Como dispositivo de almacenamiento externo para servicios OAP, es responsable del almacenamiento de datos y admite múltiples tipos de almacenamiento. Puede utilizar sistemas de almacenamiento existentes, como ElasticSearch, Mysql, etc., o personalizar el sistema de almacenamiento.

Los datos de SkyWalking se pueden almacenar en los sistemas de persistencia implementados de ElasticSearch, Mysql, TiDB, InfluxDB y H2. H2 es una base de datos en memoria. Los datos almacenados están en la memoria y no caen al disco. Reiniciar el servicio SkyWalking causará pérdida de datos Es el método de almacenamiento predeterminado y el clúster ElasticSearch generalmente se usa en línea como almacenamiento de back-end.

0 4 interfaz de usuario

Responsable de visualizar y administrar los datos de SkyWalking, separando el front-end y el back-end. La interfaz UI es responsable de encapsular las operaciones de consulta del usuario en solicitudes GraphQL y enviarlas al backend OAP para activar operaciones de consulta posteriores. Una vez obtenidos los resultados de la consulta, Será responsable de mostrar y ver la relación de llamadas de la cadena, ver varios indicadores de seguimiento, indicadores de rendimiento, etc.

De la introducción anterior a los subsistemas que componen SkyWalking, se puede saber que el programa Agente es responsable de recopilar varios datos de muestreo de enlaces, pasarlos a OAP a través de GRPC para su análisis y almacenarlos en la base de datos, y finalmente a través de Se muestra la interfaz de usuario para analizar los informes estadísticos, las dependencias del servicio y los diagramas de topología.

Ampliación de la aplicación SkyWalking y ajuste del rendimiento

Un ejemplo de desarrollo de complementos personalizados: desarrolle un complemento personalizado basado en un determinado sistema e impleméntelo en el directorio de complementos del paquete de implementación de SkyWalking.

Cuando se llama a una interfaz de consulta, varios subprocesos pueden ver la información de muestreo del método en SkyWalking, como se muestra en la Figura 1:

imagen

Figura 1 Información de muestreo de un método de consulta

Haga clic en el enlace de un método de consulta en la Figura 1 para ver información detallada del intervalo, como se muestra en la Figura 2.

imagen

Figura 2 Información de tramo

De la información anterior, podemos ver claramente que las tres etiquetas que agregamos son: hora de inicio de invocación, hora de finalización de invocación y tiempo de ejecución del método de consulta entre sistemas (ms).

Reconstrucción del sistema, la arquitectura se caracteriza por múltiples microservicios y sistemas multienlace. Se pueden aplicar los resultados de cuatro temas: inspección de configuración de parámetros, tecnología de observabilidad, migración de datos y verificación simultánea.

Un ejemplo de ajuste de rendimiento. Para minimizar el impacto de SkyWaling Agent en las pruebas de rendimiento empresarial y monitorear verdaderamente el cuello de botella de rendimiento del sistema empresarial, hemos realizado algunos ajustes de rendimiento en SkywalkingAgent ajustando parámetros relacionados, como la frecuencia y la cantidad de muestreo. , podemos reducir la implementación de SkyWalking. Pérdida adicional de rendimiento después del Agente.

La Figura 3 es una comparación de los resultados de las pruebas de rendimiento bajo la misma concurrencia para la misma transacción sin implementar SkyWaling Agent, implementar la estandarización de SkyWaling Agent (sin ajuste de rendimiento) e implementar SkyWaling Agent con ajuste de rendimiento. Después del ajuste, encontramos que el rendimiento mejoró. en comparación con el escenario de implementación estandarizado, y la pérdida de rendimiento se minimizó en comparación con la situación en la que no se implementó ningún agente.

imagen

Finalmente: el video tutorial completo de prueba de software a continuación se ha ordenado y subido, y los amigos que lo necesiten pueden obtenerlo ellos mismos [Garantizado 100% gratis]

Documentación de la entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los últimos materiales de entrevista de empresas de Internet de primer nivel como Ali, Tencent y Byte, y algunos jefes de Byte han dado respuestas autorizadas. Termine este conjunto Los materiales de la entrevista Creemos que todos pueden encontrar un trabajo satisfactorio.

Supongo que te gusta

Origin blog.csdn.net/wx17343624830/article/details/132480946
Recomendado
Clasificación