Starlight for RabbitMQ

Starlight for RabbitMQ acts as a proxy between your RabbitMQ application and Apache Pulsar™ cluster. It implements the AMQP 0.9.1 protocol used by RabbitMQ clients and translates AMQP frames and concepts to Pulsar ones. Starlight for RabbitMQ can be run as a standalone Java application, a Pulsar Protocol Handler, or a Pulsar Proxy Extension.

How Starlight for RabbitMQ works

AMQP 0.9.1, the protocol RabbitMQ uses, employs the concepts of Exchanges, Queues, and Bindings to provide basic routing capabilities inside the message broker. These concepts are mapped to Pulsar topics and features.

Starlight for RabbitMQ acts as a proxy and uses the Pulsar binary protocol to communicate with the brokers. This method allows RabbitMQ applications to leverage Pulsar features like load balancing of the topics on the brokers, batching of messages, partitioning of topics, and load balancing of the data on the consumers.

To learn more read our blog post about Starlight for RabbitMQ.

Deployment options

Starlight for RabbitMQ can be run in various deployments:

  • Standalone Java application Running Starlight for RabbitMQ as a standalone Java application has the advantage of not impacting the resources used by the Pulsar cluster but on the other hand you need to deploy and manage the lifecycle of an additional runtime.

  • Pulsar Pluggable Protocol Handler Deploying Starlight for RabbitMQ in the broker as a Protocol Handler avoids having to deploy another runtime but there will be resources used by Starlight for RabbitMQ to handle the traffic that can have an impact on the load balancing algorithms used by Pulsar.

  • Pulsar Proxy extension Deploying Starlight for RabbitMQ in the Pulsar Proxy as a Proxy Extension avoids having to deploy another runtime if you already use the Pulsar Proxy and it will not have a big impact on the Pulsar Proxy functioning. Note that Proxy Extensions will be available in Pulsar v2.9+.

Limitations

The following capabilities have not been implemented:

  • Header exchanges (topic exchanges have been added)

  • Exclusive consumers

  • Non durable exchanges and queues

  • Transient messages (all messages are persisted)

Because RabbitMQ and Pulsar work differently, Starlight for RabbitMQ was designed to make the most of Pulsar’s scalability. This means that canceling an AMQP consumer will re-queue the messages that were received through it because it also closes the associated Pulsar consumers.

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com