Saltar al contenido

Comenzando con TIBCO(R) Messaging — Distribución de Apache Kafka (I) Visión general e instalación

Foto creada por freepik

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:

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!!

Distribución de Apache Kafka en funcionamiento

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:

Kafka Tool podría usarse para monitorear tus brokers de Kafka

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:

Proceso de Prueba del Remitente de Kafka
Proceso de Prueba del Receptor de Kafka

Y este es el resultado que obtenemos después de ejecutar ambos procesos:

Ejecución correcta usando TIBCO Business Studio

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:

El tema se ha creado bajo demanda

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.

Etiquetas:

Starting with TIBCO(R) Messaging — Apache Kafka Distribution (I) Overview and Installation

Photo created by freepik

If you are familiar with Enterprise Integration world for sure you know Kafka, one of the most famous projects from Apache Foundation for the last years, and also if you are in Integration World you know TIBCO Software, and some of our flagship products like TIBCO ActiveMatrix BusinessWorks for integration, TIBCO Cloud Integration as our iPaaS, TIBCO AMX BPM, TIBCO BusinessEvents.. and I could continue that list over and over.. 🙂

But, probably you don’t know about TIBCO(R) Messaging — Apache Kafka Distribution. This is one of the parts of our global messaging solution named TIBCO Messaging and it is composed of several components:

  • TIBCO Enterprise Message Service (aka TIBCO EMS) is our JMS 2.0 compliant server, one of our messaging standards over a decade.
  • TIBCO FTL is our cloud-ready messaging solution, using a direct pub-sub no centralized and so performant communication system.
  • TIBCO(R) Messaging — Apache Kafka Distribution is designed for efficient data distribution and stream processing with the ability to bridge Kafka applications to other TIBCO Messaging applications powered by TIBCO FTL(R), TIBCO eFTL(TM) or TIBCO Enterprise Message Service(TM).
  • TIBCO(R) Messaging — Eclipse Mosquitto Distribution includes a lightweight MQTT broker and C library for MQTT client in the Core package and a component for bridging MQTT clients to TIBCO FTL applications in the Bridge package.

I’d like to do that post fully-technical but I’m going to let a piece of info about product version that you could find interesting, because we have a Community Edition of this whole Messaging solution and you could use yourself.

TIBCO Messaging software is available in a community edition and an enterprise edition.

TIBCO Messaging — Community Edition is ideal for getting started with TIBCO Messaging, for implementing application projects (including proof of concept efforts) for testing, and for deploying applications in a production environment. Although the community license limits the number of production processes, you can easily upgrade to the enterprise edition as your use of TIBCO Messaging expands. The community edition is available free of charge, with the following limitations and exclusions:

● Users may run up to 100 application instances or 1000 web/mobile instances in a production environment.

● Users do not have access to TIBCO Support, but you can use TIBCO Community as a resource (http://community.tibco.com).

TIBCO Messaging — Enterprise Edition is ideal for all application development projects, and for deploying and managing applications in an enterprise production environment. It includes all features presented in this documentation set, as well as access to TIBCO Support.

You can read that info here, but, please, take your time too to read our official announcement that you could find here.

So, this is going to be the first of a few posts about how to integration Kafka in the usual TIBCO ecosystem and different technologies. This series is going to assume that you already know about Apache Kafka, and if you don’t, please take a look at the following reference before moving forward:

So, now we are going to start installing this distribution in our machine, in my case I’m going to use UNIX based target, but you have this software available for MacOS X, Windows or whatever OS you’re using.

Installation process is quite simple because distribution is based on the most usual Linux distributions so it provides you a deb package, a rpm package or even a tar package so you can use whatever you need for your current distribution. In my case, as I’m using CentOS I’ve moved with the rpm package and everything goes so smooth.

And after that I have installed in my /opt/tibco folder a pretty much usual Kafka distribution, so to start it we need to start the zookeeper server first and then the kafka server itself. And that’s it. Everything is running!!

Apache Kafka Distribution up & running

Mmmm.. But, How can I be sure of it? Kafka it doesn’t provide a GUI to monitor or monitor it, but there are a bunch of tools out there to do that. In my case I’m going to use Kafka Tool because it doesn’t need another components like Kafka REST and so on, but keep in mind there are other options with “prettier” UI but this is going to make the job just perfect.

So, after installing Kafka Tool, we only provide the data of where zookeeper is listening (if you keep everything by default, is going to be listening at 2181) and the Kafka version we’re using (in this case is 1.1), and now you can be sure everything is up & running and working as expected:

Kafka Tool could be used to monitor your Kafka brokers

So, now we are going to do only a quick test using our flagship integration product TIBCO AMX BusinessWorks which has a Kafka plug-in, so you can communicate with this new server we just launched. This is going to be only a Hello World with the following structure:

  • Process A is going to sent a Hello! to Process B.
  • Process B is going to receive that message and print it in a log.

The process are going to be developed just like these:

Kafka Sender Test Process
Kafka Receiver Test Process

And that’s the output we get after executing both processes:

Correct execution using TIBCO Business Studio

And we can see that the topic sample we used to do the comunication and the default partition has been created by default using Kafka Tool:

Topic has been created on-demand

As you can see, so easy and straightforward to have it all configured in a default way. After that, we continue going deep on this new component in the TIBCO world!