Si estás familiarizado con el mundo de la Integración Empresarial, seguro que conoces Kafka, uno de los proyectos más famosos de la Fundación Apache en los últimos años, y también si estás en el mundo de la Integración conoces TIBCO Software, y algunos de nuestros productos insignia como TIBCO ActiveMatrix BusinessWorks para integración, TIBCO Cloud Integration como nuestro iPaaS, TIBCO AMX BPM, TIBCO BusinessEvents… y podría continuar esa lista una y otra vez.. 🙂
Pero, probablemente no sepas sobre TIBCO(R) Messaging — Apache Kafka Distribution. Esta es una de las partes de nuestra solución de mensajería global llamada TIBCO Messaging y está compuesta por varios componentes:
- TIBCO Enterprise Message Service (también conocido como TIBCO EMS) es nuestro servidor compatible con JMS 2.0, uno de nuestros estándares de mensajería durante más de una década.
- TIBCO FTL es nuestra solución de mensajería lista para la nube, utilizando un sistema de comunicación pub-sub directo, no centralizado y muy eficiente.
- TIBCO(R) Messaging — Apache Kafka Distribution está diseñado para la distribución eficiente de datos y el procesamiento de flujos con la capacidad de conectar aplicaciones Kafka a otras aplicaciones de TIBCO Messaging impulsadas por TIBCO FTL(R), TIBCO eFTL(TM) o TIBCO Enterprise Message Service(TM).
- TIBCO(R) Messaging — Eclipse Mosquitto Distribution incluye un broker MQTT ligero y una biblioteca C para el cliente MQTT en el paquete Core y un componente para conectar clientes MQTT a aplicaciones TIBCO FTL en el paquete Bridge.
Me gustaría hacer esta publicación completamente técnica, pero voy a dejar un poco de información sobre la versión del producto que podrías encontrar interesante, porque tenemos una Edición Comunitaria de toda esta solución de Mensajería que podrías usar tú mismo.
El software TIBCO Messaging está disponible en una edición comunitaria y una edición empresarial.
TIBCO Messaging — Community Edition es ideal para comenzar con TIBCO Messaging, para implementar proyectos de aplicaciones (incluidos esfuerzos de prueba de concepto) para pruebas, y para desplegar aplicaciones en un entorno de producción. Aunque la licencia comunitaria limita el número de procesos de producción, puedes actualizar fácilmente a la edición empresarial a medida que tu uso de TIBCO Messaging se expande. La edición comunitaria está disponible de forma gratuita, con las siguientes limitaciones y exclusiones:
● Los usuarios pueden ejecutar hasta 100 instancias de aplicaciones o 1000 instancias web/móviles en un entorno de producción.
● Los usuarios no tienen acceso al soporte de TIBCO, pero pueden usar TIBCO Community como recurso (http://community.tibco.com).
TIBCO Messaging — Enterprise Edition es ideal para todos los proyectos de desarrollo de aplicaciones, y para desplegar y gestionar aplicaciones en un entorno de producción empresarial. Incluye todas las características presentadas en este conjunto de documentación, así como acceso al soporte de TIBCO.
Puedes leer esa información aquí, pero, por favor, tómate tu tiempo también para leer nuestro anuncio oficial que puedes encontrar aquí.
Así que, este va a ser el primero de algunos posts sobre cómo integrar Kafka en el ecosistema habitual de TIBCO y diferentes tecnologías. Esta serie va a asumir que ya conoces Apache Kafka, y si no lo haces, por favor, echa un vistazo a la siguiente referencia antes de continuar:
- Documentación Oficial de Apache Kafka: https://kafka.apache.org/documentation/
- Arquitectura de Kafka: https://dzone.com/articles/kafka-architecture
Así que, ahora vamos a comenzar instalando esta distribución en nuestra máquina, en mi caso voy a usar un objetivo basado en UNIX, pero tienes este software disponible para MacOS X, Windows o cualquier sistema operativo que estés usando.
El proceso de instalación es bastante simple porque la distribución se basa en las distribuciones de Linux más habituales, por lo que te proporciona un paquete deb, un paquete rpm o incluso un paquete tar para que puedas usar lo que necesites para tu distribución actual. En mi caso, como estoy usando CentOS, he optado por el paquete rpm y todo va muy bien.
Y después de eso, he instalado en mi carpeta /opt/tibco una distribución de Kafka bastante usual, así que para iniciarla necesitamos iniciar primero el servidor zookeeper y luego el servidor kafka en sí. Y eso es todo. ¡¡Todo está funcionando!!
Mmmm.. Pero, ¿cómo puedo estar seguro de ello? Kafka no proporciona una GUI para monitorear o supervisarlo, pero hay un montón de herramientas por ahí para hacerlo. En mi caso voy a usar Kafka Tool porque no necesita otros componentes como Kafka REST y demás, pero ten en cuenta que hay otras opciones con una interfaz de usuario más “bonita”, pero esta va a hacer el trabajo perfectamente.
Así que, después de instalar Kafka Tool, solo proporcionamos los datos de dónde está escuchando zookeeper (si mantienes todo por defecto, va a estar escuchando en el 2181) y la versión de Kafka que estamos usando (en este caso es la 1.1), y ahora puedes estar seguro de que todo está en funcionamiento y trabajando como se espera:
Así que, ahora vamos a hacer solo una prueba rápida usando nuestro producto de integración insignia TIBCO AMX BusinessWorks que tiene un complemento de Kafka, para que puedas comunicarte con este nuevo servidor que acabamos de lanzar. Esto va a ser solo un Hola Mundo con la siguiente estructura:
- El Proceso A va a enviar un ¡Hola! al Proceso B.
- El Proceso B va a recibir ese mensaje y lo imprimirá en un registro.
Los procesos se van a desarrollar de la siguiente manera:
Y este es el resultado que obtenemos después de ejecutar ambos procesos:
Y podemos ver que el tema de ejemplo que usamos para hacer la comunicación y la partición predeterminada se ha creado por defecto usando Kafka Tool:
Como puedes ver, es muy fácil y directo tener todo configurado de manera predeterminada. Después de eso, continuamos profundizando en este nuevo componente en el mundo de TIBCO.