This component provides AMQP 1.0 producer and consumer support via a bridging layer implementing the Vert.x event bus MessageProducer and MessageConsumer APIs over the top of vertx-proton.
Warning
|
this module has the tech preview status, this means the API can change between versions. |
Using Vert.x AMQP Bridge
To use Vert.x AMQP Bridge, add the following dependency to the dependencies section of your build descriptor:
-
Maven (in your
pom.xml
):
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-amqp-bridge</artifactId>
<version>3.3.0.CR2</version>
</dependency>
-
Gradle (in your
build.gradle
file):
compile io.vertx:vertx-amqp-bridge:3.3.0.CR2
Sending a Message
Here is a simple example of creating a MessageProducer
and sending a message with it.
First, an AmqpBridge
is created and started to establish the underlying AMQP connection,
then when this is complete the producer is created and a message sent using it. You can also optionally supply
AmqpBridgeOptions
when creating the bridge in order to configure various options, such
as SSL connections.
AmqpBridge bridge = AmqpBridge.create(vertx);
// Start the bridge, then use the event loop thread to process things thereafter.
bridge.start("localhost", 5672, res -> {
// Set up a producer using the bridge, send a message with it.
MessageProducer<JsonObject> producer = bridge.createProducer("myAmqpAddress");
JsonObject amqpMsgPayload = new JsonObject();
amqpMsgPayload.put("body", "myStringContent");
producer.send(amqpMsgPayload);
});
Receiving a Message
Here is a simple example of creating a MessageConsumer
and registering a handler with it.
First, an AmqpBridge
is created and started to establish the underlying AMQP connection,
then when this is complete the consumer is created and a handler registered that prints the body of incoming AMQP
messages.
AmqpBridge bridge = AmqpBridge.create(vertx);
// Start the bridge, then use the event loop thread to process things thereafter.
bridge.start("localhost", 5672, res -> {
// Set up a consumer using the bridge, register a handler for it.
MessageConsumer<JsonObject> consumer = bridge.createConsumer("myAmqpAddress");
consumer.handler(vertxMsg -> {
JsonObject amqpMsgPayload = vertxMsg.body();
Object amqpBody = amqpMsgPayload.getValue("body");
System.out.println("Received a message with body: " + amqpBody);
});
});