No sople, RabbitMQ es realmente rocas!

RabbitMQ hoy para presentar en el negocio de una gran cantidad de potentes extremo libre del texto y luego enviar el libro 10 peso pesado, no se pierda! ! !

RabbitMQ se puede realizar como un almacenamiento de alto rendimiento para la distribución de mensajes distribuidos middleware, la comunicación asíncrona, de desacoplamiento de servicio, lo que limita las interfaces, retraso servicio de distribución de mensajes y el procesamiento de funciones, tiene una muy amplia gama de aplicaciones en un entorno de producción, que características pueden resumirse como se muestra en la figura.


papel figura 1 RabbitMQ

Es porque RabbitMQ tiene tantas características que hace que tenga un lugar en la aplicación práctica del sistema, esta sección describe lo que RabbitMQ escenarios de aplicación típicos.

1. Disociadas y los servicios de comunicación asíncrona

El "Registro de Usuario" para la escena real, el proceso de registro de usuario de procesamiento de aplicaciones empresariales tradicionales, introducir primero un nombre de usuario en la interfaz de usuario, la información tal como el correo electrónico o número de teléfono, después de la confirmación, haga clic en el botón "Registrar" para enviar información relevante .

Esta información se presentará a la parte delantera de la parte trasera del procedimiento de la superficie correspondiente, después de recibir el extremo posterior de la información, llevará a cabo una comprobación de la información básica, la verificación tiene éxito después de que escribe la información en la tabla de datos de base de datos relacionada, con el fin de registrar la seguridad del usuario, llame a la interfaz del servidor de correo subyacente para enviar un mensaje proporcionado por la validez del usuario, o llamando a los servicios de SMS para enviar el código de verificación de SMS a la interfaz de usuario que ser verificado, y finalmente la parte posterior información de respuesta en la parte delantera de usuario y mensajes de "registro exitoso", todo el proceso se muestra en la Figura 2.


2 proceso tradicional de registro de usuario de aplicaciones empresariales

Como puede verse en el proceso de la figura 2, después de que el usuario haga clic en el botón "Registrar" para presentar la información relevante que necesitan para pasar por "largo" tiempo de espera, el tiempo de espera total es aproximadamente igual a la "base de datos de escritura" + "dirección de correo electrónico de verificación" + " SMS de confirmación "del tiempo de procesamiento. Si aparece el icono de proceso en los mensajes de texto electrónico y enviarlo a las excepciones de lógica de negocios, se dará por terminado todo el proceso, es evidente que este enfoque es casi inaceptable para los usuarios actuales de Internet!

El análisis cuidadoso de todo el proceso de registro de usuario, no es difícil encontrar su lógica de negocio central que "a juzgar la legitimidad de la información de registro de usuario y la información en la base de datos" y "servicios de verificación de SMS" "Enviados" y hasta cierto punto, no atribuible a los procesos centrales "registro de usuario", y por lo tanto el servicio correspondiente puede ser desacoplado de la cual, y el uso de mensajes middleware para la comunicación asíncrona como RabbitMQ, como se muestra en la figura.


La figura 3 después de la introducción del flujo del registro de usuario RabbitMQ mensaje middleware

RabbitMQ puede ver la introducción de la "una línea para ir al final," el módulo de servicio de negocio se ha desacoplado, el tiempo total de respuesta de la interfaz del sistema se redujo también significativamente mucho, es decir, para lograr una "baja latencia". Desde el punto de vista del usuario, esto dará a los usuarios una experiencia de buen efecto.

2. Interfaz límite de intensidad y distribución de mensajes

A "centro comercial del usuario a comprar", por ejemplo, el tráfico comercial con el fin de atraer a los usuarios, se llevará a cabo de vez en la actividad de compra de tiempo en línea almacenar mercancía caliente en la compra de las actividades antes del inicio, los usuarios como "espera" por lo general miran al frente de la pantalla en espera de acontecimientos inicialmente, cuando el inicio de las actividades, debido al número limitado de productos, casi todos los usuarios se haga clic en el botón "comprar" para comenzar a comprar productos al mismo tiempo, el proceso global se muestra en la Figura 4.


actividades de flujo de proceso convencional figura compra de la alameda 4 mercancía

No hay duda, en ese momento para iniciar la actividad de compra, que tendrá un enorme tráfico de compra del usuario, estas peticiones casi a las interfaces del sistema de back-end al mismo tiempo. En circunstancias normales, el interfaz de sistema de fondo sobre la recepción de una solicitud enviada por el extremo delantero, se ejecuta el siguiente procedimiento:

En primer lugar comprobar la legitimidad de la información del usuario y los productos básicos, después de la verificación por, juzgará la idoneidad del inventario actual de productos, si es suficiente, en nombre del usuario actual será capaz de comprar mercancía con éxito, finalmente rompió los datos relacionados con el usuario exitosas registrada en la base de datos, el éxito de usuario compra y notificación asíncrona, hacer un pago tan pronto como sea posible y así sucesivamente.

Sin embargo, por el análisis cuidadoso, el usuario del sistema de procesamiento de backend interfaz de proceso de negocio de compra en general "demasiado tiempo", y en este bloque de lógica de negocio proceso, no se toma primero la determinación stock luego, finalmente decrementa la actualización, en el caso de alta concurrencia, éstas sistema operativo empresarial traerá muchos problemas. Por ejemplo, exceso de ventas de los productos básicos, datos inconsistentes, los usuarios esperan de un largo tiempo, el sistema de interfaz de cuelgue y así sucesivamente. Así este caso sólo una única cantidad de flujo del proceso del extremo delantero adaptado para solicitar al mismo tiempo unos pocos casos, pero similar a la compra de la alameda, otras materias primas a la vez para generar alta adición solicitudes simultáneas es irregular.

RabbitMQ middleware de mensajería se introduce puede ser mejorado en gran medida los procesos globales de rendimiento del sistema y de negocios, tal como se muestra en la Figura 5 del sistema de procesamiento general después de la RabbitMQ introducción.


actividades de flujo de proceso convencional figura compra de la alameda 5 mercancía

Como puede verse en la Figura 5, RabbitMQ introdujo principalmente para optimizar el sistema de procesamiento global de los dos aspectos siguientes:

1) limitar Interfaz: Cuando la gama alta de corriente genera solicitudes simultáneas, y no como "sin cabeza" alcanza inmediatamente el extremo posterior como la interfaz del sistema, pero como limitantes trabajos subterráneos todos los días a la misma, estas solicitudes de acuerdo con las reglas de primero que llega primero sirvió Añadir cola RabbitMQ, es decir, en una forma de lograr "Interfaz limitante."

2) para distribuir mensajes de forma asíncrona: Cuando el inventario de mercancías adecuada, los usuarios actuales será capaz de agarrar la compra de este producto, que debe seguirse de forma asincrónica mediante el envío de un SMS, correo electrónico, etc. para informar del éxito de usuario compra, e informar al usuario de que el pago tan pronto como sea posible, que de alguna para alcanzar un grado "distribución de mensajes de forma asíncrona".

3) el negocio de procesamiento de retardo

Además de RabbitMQ puede lograr en tiempo real mensajes asíncronos circulado en algunos escenarios de negocio, sino también para lograr el procesamiento de retraso y el retraso del mensaje. Tras el "Festival de Primavera entradas 12306 Rush" como un ejemplo. Fiesta de la Primavera prisa entradas no están familiarizados con los lectores creen que, cuando utilizamos a los billetes de agarre 12306 agarrar vota Software, 12306 oficial será recordar al usuario "Por favor pago dentro de los 30 minutos." Los usuarios tendrán que pagar de inmediato en circunstancias normales, a continuación, introduzca la contraseña adecuada a pagar pagar el precio de los billetes de tren. Después de la deducción es exitosa, 12306 oficial enviar mensajes de correo electrónico o mensajes de texto para informar a los usuarios y los votos de pago de agarre éxito.

Sin embargo, el real, pero hay algunas circunstancias especiales, como por ejemplo después de un usuario a los billetes de agarre, por diversas razones, aún tiene que pagar más el precio después de 30 minutos sigue sin pagar el billete, porque el sistema para cancelar automáticamente la suma orden. Esto es similar a "necesitar algún tiempo de retraso antes de manipular" los negocios no es poco común en el entorno de producción real, las aplicaciones empresariales tradicionales de esas operaciones de procesamiento, es el uso de un contador de tiempo no se mide el tiempo para obtener las órdenes de pago, y determinar si un usuario ordena desde el tiempo actual ha superado los 30 minutos, y si, el usuario aún no ha pagado dentro de los 30 minutos, el sistema automáticamente causa del fracaso y la recuperación de las órdenes de la pluma una de las entradas, el proceso de negocio en la Fig. 6 Fig.


6 agarrar el flujo tradicional proceso tras el éxito de la falta de pago de la multa dentro de los 30 minutos

entradas de última hora fiesta de la primavera se pueden ver como una gran cantidad de datos, alta escena de solicitudes simultáneas, después de un cierto apuro billete hora de abrir, en circunstancias normales continuarán teniendo un usuario a agarrar un billete, pero el pago boleto de éxito hay un cierto tiempo intervalo.

Durante este tiempo, si el temporizador recupera de la base de datos con frecuencia el estado del pedido "no pago", es difícil imaginar la cantidad de datos generales, y si grandes cantidades de retardo de usuario en el pago dentro de los 30 minutos, a continuación, a partir de la base de datos la cantidad de datos adquiridos ha ido creciendo cuando se alcanza un cierto nivel, el servidor de base de datos y servidor de aplicaciones traerá una enorme presión, y algunos incluso abrumar directamente al servidor, lo que lleva al colapso de entradas de última hora y otros servicios en todos los ámbitos, la directa las consecuencias serían desastrosas!

Muchos de los primeros software de entradas de última hora cada vez que el Festival de Primavera periodo de captura pico de viaje, a menudo un "lugar del accidente" "clic para comprar boletos ha habido respuesta", y otras condiciones, en parte debido a alta concurrencia en algún momento producido , o una base de datos de extracción de temporización obtenida con frecuencia las condiciones de sobrecarga de datos, etc., lo que lleva a los servicios de memoria, CPU, red y base de datos debido a cargas excesivas.

La introducción de RabbitMQ middleware de mensajería, si se trata de un nivel de negocios o rendimiento de nivel de aplicación están mejorado en gran medida, "el flujo del proceso después de un robo de éxito vota sin pagar dentro de los 30 minutos" después de 7 la introducción de RabbitMQ mensajería Figura middleware optimización.


7 agarre optimizar el flujo del proceso tras el éxito del billete no se paga dentro de los 30 minutos

Como puede ser visto desde el proceso de optimización, principalmente introducido RabbitMQ sustituido "lógica de procesamiento de temporizador" flujo de proceso convencional, reemplazado por la cola de retardo introducción RabbitMQ para su procesamiento. cola de demora, por medio de definición de que un cierto retardo de tiempo puede ser re-tratamiento de la lógica de negocio correspondiente.

Esta característica RabbitMQ en ciertos escenarios de hecho puede jugar un papel bueno, como hablar por encima de "flujo de procesamiento después de una exitosa entradas para agarrarse a 30 minutos de la falta de pago" es un típico. Además, cuando el centro comercial "clic para pagar dinero en el plazo establecido todavía tiene que" el flujo del proceso, cuando el punto de llevar "aún tiene que dentro de un tiempo especificado después de que el éxito de la próxima de pago único," el proceso de tratamiento son el entorno de producción real, el escenario más típico.

Además de la situación anterior en la lista, en otros escenarios de negocio RabbitMQ también tiene una amplia aplicación, no enumerados aquí en el!

Adaptado de la mecánica Industria Editorial de " tecnología de middleware distribuido combate (versión Java) ", emitido por el comunicado de prensa. Es necesario aprender el contenido del lector, puede hacer clic a continuación para comprar el libro para leer.

bienestar donado

Los libros nacionales mercado de libros sobre el Java middleware mucho, pero la verdadera desde el punto de vista del principiante, basado en el proyecto actual, para los lectores de guía para mejorar el nivel de desarrollo a través de una variedad de módulos típicos y libros de casos son pocos.

" Distributed combate tecnología de middleware (versión Java) " es la lucha contra la principal, con los conocimientos teóricos necesarios, presenta varios middleware distribuido populares, incluyendo el conocimiento de los puntos clave de los escenarios de negocio teóricas y prácticas en el proceso real, por lo que el lector puede casi paso a paso desde cero para aprender una variedad de middleware de uso común el desarrollo de aplicaciones Java empresarial, mejorando así el nivel de desarrollo real y la capacidad de combate del proyecto.

¿Cómo conseguir la libre libro de ella?

Por favor, haga clic en el siguiente número de enlaces a artículos al público a participar.
https://mp.weixin.qq.com/s/0DC1F1Vuq--ZaKDX_oXt7w

Recomendé a mi blog para leer más:

1. Java JVM, colecciones, multithreading, nueva serie de tutoriales

2. el Spring MVC, el arranque de la primavera, las series de primavera de la nube tutoriales

3. Maven, Git, el Eclipse, IntelliJ IDEA herramienta serie de tutoriales

4. Java, la arquitectura de fondo, Alibaba y otros fabricantes se enfrentan a nuevas preguntas

La vida es hermosa, ver mañana ~

Supongo que te gusta

Origin www.cnblogs.com/javastack/p/12541292.html
Recomendado
Clasificación