Soy una solicitud para un pico, y estoy escapando de este planeta ...

Autor | Marco de chat Wukong

Fuente | Arquitectura de chat de Wukong (ID: PassJava666)


Introducción a Planet

Ubicación: galaxia β-410, planeta de comercio electrónico A-731.

Hora: Nueva Era 2036.

Sobre el planeta:

  • Nombre chino: A-731 E-commerce Planet

  • Nombre extranjero: A-731 Mall

  • Categoría: Planeta

  • Período de revolución: un año

  • Usuarios residentes: trabajadores de middleware, diversas solicitudes.

  • La historia total del planeta: 200.000 años.

Crisis planetaria

Soy una solicitud de picos y mi trabajo diario es enviar los datos de solicitudes de picos a los trabajadores de back-end.

Este día conocí la solicitud "Xiaokong" en el servidor de reenvío de Nginx. Le dije a Xiaokong que había noticias importantes que no eran convenientes. Ahora le dije que hiciera una cita después del trabajo, y luego me apresuré a salir a la carretera.

Xiaokong y yo fuimos a un bar después del trabajo a las diez de la noche, pedimos dos vasos de mojito y nos sentamos en un rincón.

Xiao Kong: Parece que estás preocupado recientemente.

Yo: ¿Has notado que el número de pedidos en nuestro planeta ha aumentado drásticamente recientemente, y los datos de 10 millones de pedidos generados cada día no es cuestión de uno o dos días?

Xiaokong: No es de extrañar que trabaje horas extras todos los días hasta las diez de la noche para entregar los datos solicitados.

Yo: Tengo un tío que trabaja para la agencia espacial y me dijo que nuestro planeta no puede transportar tantas solicitudes y datos de pedidos, y pronto habrá una "explosión planetaria". No se lo revele a otros.

Xiao Kong: ¿Qué debo hacer?

Yo: Podemos ir al planeta T-714 a 100 años luz de distancia, pero solo podemos ir a ese planeta usando el transbordador temporal a través del canal de picos. Y la cuota es limitada, no sé si tengo la oportunidad de abordar el transbordador.

Yo: El túnel se abrirá dos veces mañana, a las 10 am y a las 2 pm. ¡Ve conmigo mañana!

Xiao Kong: Está bien.

"Los puntos de conocimiento involucrados:"

  • ¿Qué se entiende aquí por explosión planetaria?

    • Debido a la gran cantidad de datos de pedidos, la base de datos no podía admitirlos. La base de datos puede estar inactiva.

    • Debido a que se envía una gran cantidad de solicitudes al servidor todos los días, el servidor no puede manejarlo. El servidor puede estar inactivo.

  • ¿Qué significa que el canal de picos se abre dos veces al día?

    • "Traffic Peak Shift", que divide el tráfico en dos picos.

    • Por supuesto, los métodos de "cambio de tráfico pico" incluyen la verificación de entrada, agregar a los carritos de compras, etc. para compartir el tráfico.

Canal de picos

Ubicación: A-731 Planet Airport

Hora: 09:45

pasillo

"Por favor, diríjase al planeta T-714 para solicitar a los pasajeros que esperen en fila en la plataforma Y1 para ingresar al pasaje especial, y que ingresen a la sala del transbordador en 15 minutos". La transmisión en el vestíbulo se transmitió tres veces seguidas.

Caminé hasta el canal especial y vi un letrero junto al canal: el canal de picos, solo para solicitudes de picos.

"Involucrando puntos de conocimiento:"

  • ¿Por qué la escena del pico creó un canal separado?

    • Para no afectar otros servicios del sistema, el negocio de picos ha implementado un conjunto de sistemas de picos por separado.

    • Resumido como "Responsabilidad única del servicio + Implementación independiente"


Pantalla grande en tiempo real

Tan pronto como miré hacia arriba, vi una gran pantalla sobre el pasillo, reproduciendo constantemente fotos del planeta T-714 e información de pedidos de boletos.

Dos trabajadores uniformados patrullan por la gran pantalla. Un uniforme se imprime con Nginx y un uniforme se imprime con CDN.

Nginx + CDN

"Involucrando puntos de conocimiento:"

  • Uniforme Nginx:

    • Los trabajadores con uniformes de Nginx mantienen los recursos estáticos y dinámicos de Nginx.

    • La página de detalles del producto es una página estática. Estas páginas estáticas se almacenan en el servidor Nginx. Al acceder a los recursos estáticos, la solicitud va primero a Nginx y luego el servidor Nginx coincide con si es el recurso estático al que se accede a través del enlace URL solicitado.

    • La página de detalles del producto de pantalla grande no se obtiene del servidor de fondo enviando una solicitud. De hecho, se ha realizado "movimiento y separación estática".

  • Una imagen explica la separación estática y dinámica de Nginx

    Diagrama de flujo de Nginx

    • Los recursos estáticos, como los archivos HTML, rara vez cambian y se pueden colocar en un servidor para acceso directo, sin interactuar con el servidor backend (como Tomcat).

    • Los recursos dinámicos, como la necesidad de conocer cuántas personas han comprado un producto en segundo plano, enviar una solicitud de pedido para almacenar datos, se denominan recursos dinámicos, no pueden entenderse estrictamente como recursos visibles, en general pueden incluir los resultados del procesamiento lógico , Realizar operaciones como almacenar datos.

  • Uniforme CDN

    • Qué es CDN: La explicación vernácula de CDN es que los usuarios obtienen recursos cercanos, reducen el tiempo de transmisión de la red y aumentan la velocidad de acceso.

    • Los archivos HTML se colocan en Nginx, y los archivos de imagen y los archivos de script importados por HTML se colocan en CDN.

    • Los trabajadores con uniformes de CDN mantienen los recursos de CDN.

  • Un diagrama de flujo explica el principio de funcionamiento de CDN

    Diagrama de flujo de CDN


Canal de verificación

Hora: 10:00

"Se ha abierto el canal de verificación, por favor traiga la contraseña para ingresar" La transmisión se transmitió tres veces.

"Los puntos de conocimiento involucrados:"

  • ¿Por qué necesito una contraseña?

    • Para evitar que una gran cantidad de solicitudes de picos simulados ingresen al flujo de procesamiento comercial, primero se agrega una verificación y estas solicitudes falsas se descartan.

    • ¿Cómo lo hiciste? La página web del front-end envía primero una solicitud para obtener la contraseña. Cuando hace clic para comprar, la contraseña cifrada se incluye en el cuerpo de la solicitud y el back-end verifica si la contraseña coincide. Puede ser cifrado por MD5.

  • Resumido como "encriptación de solicitud seckill".


Sala de transporte


Después de pasar por el canal de verificación, la mitad de las solicitudes falsas se bloquearon afuera de la puerta, y aquellos como yo que obtuvieron la contraseña correcta ingresaron al pasillo del transbordador sin problemas.

Cuando llegué al pasillo, encontré un monitor colocado en el centro del pasillo, y el número rojo 100 que se muestra en él vino a mis ojos.

En el lado izquierdo de la pantalla se encuentra una hermosa niña con un uniforme de Redis. Escuché que ella estaba controlando el monitor para mostrar el número restante de la lanzadera. Si el número se convierte en 0, significa que todos los transbordadores han sido ocupados y las personas que siguen tendrán que regresar sin éxito.

Redis

"Los puntos de conocimiento involucrados:"

  • En el escenario de pico, consultar el inventario restante no es verificar directamente la base de datos, sino verificar la caché de Redis.

  • ¿Por qué comprobar la caché? Debido a que la velocidad de verificación de la caché es mucho más rápida que la verificación de la base de datos, el tiempo de respuesta se reduce y la presión sobre la base de datos se reduce mucho. Si se realizan muchas solicitudes de verificación de inventario a la base de datos, la base de datos colapsará y la base de datos no podrá realizar otras tareas.


Agarrar votos

En el lado derecho de la exhibición había un joven apuesto en un traje recto, y vio un brazalete rojo colgando de su puño con las palabras Redisson impresas en él. Con una expresión seria en su rostro, ignoró las oscuras solicitudes en el pasillo. Quizás estés acostumbrado a este tipo de escenas.

Cuando estaba mirando a este chico guapo, descubrí que tenía una pila de boletos en su mano izquierda. Así es, puedes iniciar sesión en el transbordador con un boleto. Llegué frente a él a una velocidad de 100 metros. Cuando llegué frente a él, ya le habían llegado una docena de solicitudes. Emitía boletos de avión por orden de llegada. Para mi tiempo, solo quedaban unos pocos boletos. Afortunadamente, mi velocidad de carrera de 100 metros me ayudó a conseguir un boleto. Le pregunté al chico guapo si podía enviarme otro boleto, pero se negó.

Cada vez que se emite un boleto, una chica guapa con uniforme de Redis accionará la pantalla para reducir su número en uno.

Diez segundos después, se ha emitido el ticket y la pantalla muestra el número 0.

"Los puntos de conocimiento involucrados:"

  • ¿Qué es Redisson? El cliente de Redis resuelve algunos problemas comunes de distribución.

  • Aquí es práctico para la función de semáforo de Redisson, hay un total de 100 boletos, es decir, 100 semáforos, y el número de boletos no se sobrevendirá debido a la concurrencia de múltiples subprocesos o sistemas distribuidos. Por ejemplo, se vendieron 101 entradas.

  • Cada persona solo puede obtener un boleto. Este es el control de idempotencia involucrado en el sistema de picos, y no puede obtener boletos repetidamente.

tarjeta de embarque


tarjeta de embarque

El chico guapo que emitió el boleto me dijo que después de obtener el boleto, debe hacer cola en la ventanilla A para pagar antes de poder obtener la tarjeta de registro. Así que hice cola en la Ventana A con otras 99 solicitudes.

Al ver una solicitud para desistir del pago, diciendo que el boleto es demasiado caro, y cuando estaba a punto de salir del vestíbulo, fue detenido por el chico guapo que emitió el boleto. Preguntó si la solicitud debía ser considerada. Había 15 minutos para considerar. No, puede devolverle el billete y él puede emitirlo a otras personas.

Recorte de cola

"Los puntos de conocimiento involucrados:"

  • Aumente el "recorte de picos de cola" comúnmente utilizado en el sistema. Las solicitudes de Spike exitosas ingresan a la cola, crean pedidos lentamente y deducen el inventario.

  • Después de que el aumento sea exitoso, dígale rápidamente al usuario que el aumento fue exitoso, en lugar de esperar a que termine el pedido y luego decirle al usuario que el usuario tendrá que esperar un tiempo, lo que afectará la experiencia.

  • ¿Por qué quiere hacer un recorte de picos de cola? Las solicitudes exitosas no tienen que ir a la base de datos para crear órdenes todas a la vez, por lo que la presión sobre la base de datos será menor.

  • En el escenario de picos, puede haber escenarios en los que el usuario lo agarra pero no paga. En este momento, el inventario se vuelve a agregar y se puede proporcionar a otros usuarios.


zarpar

Después de que el pedido se creó correctamente, obtuve correctamente la tarjeta de embarque. Después de aprobar la verificación de la tarjeta de embarque, abordé con éxito el servicio de transporte.

Partir, ir al planeta T-714. Escuché que la base de datos de ese planeta se ha dividido en bases de datos y tablas, y los servicios también se han dividido en microservicios.


para resumir

Lo anterior explica los puntos de preocupación en el sistema de picos a través de la ciencia ficción, y el siguiente es un resumen de los ocho puntos de preocupación en el sistema de picos:

Concéntrate en la escena del pico

  • Servicio de responsabilidad única, implementación independiente

  • Precalentamiento de inventario, deducción rápida

  • Cifrado de enlace de pico

  • Separación dinámica y estática

  • Intercepción de solicitudes maliciosas

  • Pico de flujo

  • Límite actual y fusión y degradación

  • Recorte de cola

No parece que solo se esté hablando del principio, ¿será una estación real?


更多精彩推荐
☞多样性计算时代,怎样的技术生态才能满足发展需求
☞牛!发出中国第一封电子邮件,注册登记域名CN,中国互联网之父传奇
☞苹果回应iPhone12用5G耗电快;央行:微信支付宝和数字人民币不存在竞争关系;Win10X 将于年底签署 RTM|极客头条
☞算力至上?四大AI芯片大对决
☞大数据给教育带来怎样的可能?
☞干货 | 以太坊上的数字签名
点分享点点赞点在看

Supongo que te gusta

Origin blog.csdn.net/csdnsevenn/article/details/109301906
Recomendado
Clasificación