Skip to main content

Streaming to Aerospike from JMS

Streaming from a JMS message broker to Aerospike Database Enterprise Edition relies on the JMS inbound connector, an Aerospike Smart Client™️. This connector allows you to stream messages from a JMS message broker, translates each message to an Aerospike record, and performs the corresponding insert, update, or delete for that record in Aerospike.

The inbound connector supports streaming data from one or more JMS queues/topics and persisting the data in an Aerospike database. The inbound JMS connector implements a scalable JMS consumer that can listen to updates or deletes on one or more topics/queues and apply them to Aerospike.

An instance of the JMS inbound connector can consume messages from only a single JMS message broker, although it can consume messages from multiple queues and topics on the message broker. Similarly, an instance of this connector can persist data to only a single Aerospike cluster.

Aerospike Database acknowledges to the JMS message broker all messages successfully persisted. It also acknowledges and logs messages that cause errors because they cannot be parsed or cannot be converted to Aerospike records.

Aerospike Database does not acknowledge messages that are not persisted. There might be cases in which Aerospike does not acknowledge a record that is persisted. It is up to the JMS message broker to resend messages that are not acknowledged.

info

There might be instances where messages are re-ordered on the network or across jms-inbound processes. In such instances, an older version of a record might overwrite a newer version of it in Aerospike Database.

Prerequisites

Ensure that the systems on which you plan to install instances of the JMS inbound connector are running one of these supported operating systems:

  • Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Ubuntu 18.04+
  • Ubuntu 20.04+
  • Debian 8
  • Debian 9
  • Debian 10

Procedure

Follow these steps on the system or systems where you plan to run the connector:

Install Java 8 or later, if it is not already installed.

  • RHEL or CentOS: sudo yum install java-1.8.0-openjdk
  • Debian or Ubuntu: sudo apt-get install openjdk-8-jre

Install the connector package.

Go to the Aerospike Enterprise downloads site to download the connector package for your operating system. After downloading the package, run either of these commands:

  • RHEL or CentOS: sudo rpm -i aerospike-jms-inbound-1.1.0-1.noarch.rpm
  • Debian or Ubuntu: sudo dpkg -i aerospike-jms-inbound-1.1.0.all.deb

Install the Aerospike Database Enterprise Edition feature-key file.

Download the feature-key file. The property mesg-jms-connector feature must be enabled in the feature key file.

Configure the connector.

Configuring streaming from JMS to Aerospike involves modifying the configuration file for the JMS inbound connector: /etc/aerospike-jms-inbound/aerospike-jms-inbound.yml. This file is located on the system where you installed the connector package.

Run this command to enable the connector to start on system startup or reboot:

sudo systemctl enable aerospike-jms-inbound

Run this command to start the connector:

sudo systemctl start aerospike-jms-inbound