/ arquitectura de software

Instalación de Apache Pulsar

Siguiendo nuestros posts sobre arquitecturas dirigidas por eventos, hoy vamos a instalar Apache Pulsar una herramienta de publicación-suscripción de mensajes bastante poderosa creada por Yahoo.

Instalación

Es necesario tener Java 8 o superior en nuestro sistema operativo. Por ahora Apache Pulsar solo puede ser instalado en GNU/Linux o MacOSX. También podemos usar docker pero para nuestro ejemplo, haremos la instalación en un sistema macOS Catalina.

Usando wget

$ wget https://archive.apache.org/dist/pulsar/pulsar-2.4.2/apache-pulsar-2.4.2-bin.tar.gz

Al finalizar la descarga del archivo lo descomprimimos:
$ tar xvfz apache-pulsar-2.4.2-bin.tar.gz
$ cd apache-pulsar-2.4.2

Y listo, ahora iniciemos una instancia para poder trabajar.

Iniciar Pulsar en nuestra máquina

Es tan fácil como escribir en nuestra terminal:
$ bin/pulsar standalone

En ese momento y si todo sale bien, podremos ver mensajes de log como estos:
2017-06-01 14:46:29,192 - INFO - [main:WebSocketService@95] - Configuration Store cache started
2017-06-01 14:46:29,192 - INFO - [main:AuthenticationService@61] - Authentication is disabled
2017-06-01 14:46:29,192 - INFO - [main:WebSocketService@108] - Pulsar WebSocket Service started

Por cierto, en este momento el servicio solo está corriendo en nuestra terminal, por lo que si necesitamos correr otros comandos necesitamos abrir una nueva pesataña. Si quisiéramos iniciarlo en background, debemos usar pulsar-daemon start standalone.

Si eres un poco curioso, verás que en la carpeta bin existen más comandos. El siguiente a utilizar es pulsar-client, el cual nos permite consumir y producir mensajes usando un tópico.

¿Qué es un tópico?

Si bien es cierto, anteriormente ya habíamos hablado de algunos conceptos, faltaba uno sumamente importante. El tema o tópico no es otra cosa que un canal para transmitir mensajes de los productores a los suscriptores.

pulsar

¿Cómo consumir un mensaje en Pulsar?

El siguiente comando consume un mensaje con la suscripción first-suscription, del tópico my-topic

$ bin/pulsar-client consume my-topic -s "first-subscription"

Si se consumió correctamente, veremos un log parecido a este:
Success subscribe new topic my-topic in topics consumer, partitions: 4, allTopicPartitionsNumber: 4

¿Cómo producir un mensaje en Pulsar?

El siguiente comando produce un mensaje al tópico que creamos anteriormente. De hecho si te fijas en el proceso anterior, no lo creamos explicitamente ya que Apache Pulsar crea los tópicos si no existen cuando consumimos un mensaje.

$ bin/pulsar-client produce my-topic --messages "hello-pulsar"

Y listo. Deberías de ver mensajes de log muy similares a los anteriores.

Si has seguido este pequeño tutorial, estarás listo para usar Pulsar en los próximos tuturiales de arquitectura dirigida por eventos. En el siguiente post, veremos como integrarlo a un desarrollo hecho en Python.

Nota: Para mayor información de Pulsar y su instalación, visita: Instalación de Apache Pulsar y su documentación oficial.

Nota 2: Sí tuviste mala suerte y te apareció un error similar a este:
java.net.UnknownHostException: failed to resolve 'pc.local' after 4 queries
Es necesario modificar el archivo apache-pulsar-2.4.2\conf\standalone.conf y agregar localhost a la propiedad advertisedAddress.

Eduardo Montalvo

Eduardo Montalvo

Programador con intereses en machine learning, clean code, arquitecturas de software y formación de equipos técnicos.

Read More