SpringCloud (25) - Introducción a las transmisiones
Cuando nuestro sistema distribuido está construido hasta cierto punto, o los servicios se comunican a través de solicitudes asincrónicas, no podemos evitar usar MQ para resolver problemas.
Si está realizando una fusión o integración comercial dentro de la empresa y necesita el servicio A y el servicio B para comunicarse a través de MQ, y el servicio A usa RabbitMQ y el servicio B usa Kafka, entonces ¿debo usar esto en el ¿Servicio al mismo tiempo? ¿Dos componentes de mensajería?
¿Existe alguna técnica que nos permita dejar de centrarnos en detalles específicos de MQ y simplemente utilizar el enlace del adaptador?
Por supuesto, Yunliu resuelve este problema.
Dirección del sitio web oficial: https://spring.io/projects/spring-cloud-stream
La definición oficial de SpringCloud Stream es un marco para crear microservicios basados en mensajes.
Las aplicaciones interactúan con objetos vinculantes en SpringCloud Stream a través de entrada o salida.
El enlace se realiza a través de nuestra configuración, y el objeto de enlace SpringCloud Stream es responsable de interactuar con el middleware de mensajería.
Así que solo tenemos que descubrir cómo interactuar con SpringCloud Stream para facilitar un enfoque basado en mensajes.
Y conéctese al middleware del agente de mensajes a través de Spring Interation para habilitar la gestión de eventos de mensajes.
SpringCloud Stream proporciona una implementación de configuración automática personalizada para productos de middleware de mensajería de algunos proveedores haciendo referencia a los tres conceptos centrales de publicación-suscripción, grupos de consumidores y particiones.
Pero actualmente solo es compatible con RabbitMQ y Kafka
Sin el concepto de carpeta, nuestra aplicación SpringBoot
debe comunicarse directamente con el middleware de mensajería Interacción, y porque el middleware de mensajería se construye con diferentes intenciones, su implementación también será muy diferente.
Al definir el binder como capa intermedia, se consigue perfectamente el aislamiento entre la aplicación y los detalles del middleware de mensajes.
Al exponer un canal unificado a las aplicaciones, las aplicaciones no necesitan considerar diferentes implementaciones de middleware de mensajería.
Al definir Binder como la capa intermedia, la aplicación se aísla de los detalles del middleware de mensajes
Binder: una forma conveniente de conectarse al middleware y enmascarar las diferencias
Canal: El canal es una abstracción de la cola y se utiliza para implementar el almacenamiento y el reenvío en sistemas de mensajes. En el sistema de comunicación de mensajes, es el medio de almacenamiento y reenvío, y la cola se configura a través del canal.
Fuente y receptor: entendido de manera simple, el objeto de referencia es el propio SpringCloud Stream. La publicación de mensajes desde Stream se emite y la recepción de mensajes se ingresa.