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.
For more information, see Starlight for RabbitMQ protocol handler.
Deployment options
There are several ways to run Starlight for RabbitMQ:
- Pulsar pluggable protocol handler
-
Deploying Starlight for RabbitMQ in the broker as a protocol handler means that you don’t need to deploy another runtime. However, the resources used by Starlight for RabbitMQ to handle traffic can have an impact on the load balancing algorithms used by Pulsar.
By adding the Starlight for RabbitMQ protocol handler to your Pulsar cluster, you can migrate your existing RabbitMQ applications and services to Pulsar without modifying the code.

- Pulsar Proxy extension
-
Deploying Starlight for RabbitMQ in the Pulsar Proxy as a proxy extension means that you don’t need to deploy another runtime if you already use the Pulsar Proxy. Additionally, there is no significant impact on the Pulsar Proxy’s performance. Proxy extensions require Pulsar version 2.9 or later.
- 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.
For instructions, see Get started with the Starlight for RabbitMQ extension.
Limitations
|
Support for topic exchanges was added in Starlight for RabbitMQ version 2.10.1. |
Starlight for RabbitMQ version 2.10.1 doesn’t support the following features:
-
Header exchanges
-
Exclusive consumers
-
Non durable exchanges and queues
-
Transient messages (all messages are persisted)
-
Authorization support
Because RabbitMQ and Pulsar work differently, Starlight for RabbitMQ was designed to realize the most benefit from Pulsar’s scalability. This means that canceling an AMQP consumer re-queues the messages that were received through it because it also closes the associated Pulsar consumers.