Consideremos la existencia de un servicio implementado
con spring-boot pero puede ser en cualquier tecnología, este servicio tiene que
enviar datos a una BD centralizada, la conexión con esta BD centralizada es muy
lenta e inestable por lo que el consumo de un servicio web punto a punto no es
la mejor solución. Una de las razones es la espera que trae la consigo la
comunicación sincrónica y es aquí donde viene al rescate la comunicación asincrónica
permitiéndonos enviar todos los mensajes hacia el otro punto de la conexión sin
la espera de la lectura y persistencia de cada uno de los mensajes de forma
secuencial.
Para implementar esta comunicación asincrónica existen
varias tecnologías en el mercado pero a mí personalmente me gusta ActiveMQ que
no es más que un un bróker de
mensajería de código abierto bajo licencia Apache 2.0 que implementa plenamente la
especificación de Java Message
Service 1.1 (JMS).
Activemq
es uno de los más populares servidores de intercambios de mensaje y es
relativamente fácil de entender y de configurar. Para la comunicación con el MessageBroker ActiveMQ y la persistencia de datos en la BD centralizada voy a usar el WSO2EI.
WSO2 EI es una solución de
integración que permite la comunicación entre varias aplicaciones dispares. En
lugar de hacer que sus aplicaciones se comuniquen directamente entre sí en
todos sus diversos formatos, cada aplicación simplemente se comunica con el EI,
que maneja la transformación y el enrutamiento de los mensajes a sus destinos
apropiados. EI incluye una serie de productos pertenecientes a esta misma
plataforma como es el caso de un WSO2 ESB como bus de servicios empresariales y
el WSO2 DSS como servidor para hostear los servicios de acceso a datos. El
esquema de la solución puede ser así.
En próximos post vamos
a realizar la implementación de esta solución.

