美文网首页
Vert.x RabbitMQ 中文文档

Vert.x RabbitMQ 中文文档

作者: leeehao | 来源:发表于2019-08-27 12:23 被阅读0次

A Vert.x client allowing applications to interact with a RabbitMQ broker (AMQP 0.9.1)

This service is experimental and the APIs are likely to change before settling down.

开始

Maven

添加以下依赖到你的 maven 项目中

<dependency>
 <groupId>io.vertx</groupId>
 <artifactId>vertx-rabbitmq-client</artifactId>
 <version>3.8.1</version>
</dependency>

Gradle

添加以下依赖到你的 Gradle 项目中

dependencies {
 compile 'io.vertx:vertx-rabbitmq-client:3.8.1'
}

创建客户端

你可以用完整的 amqp uri 创建一个 客户端实例。

RabbitMQOptions config = new RabbitMQOptions();
// full amqp uri
config.setUri("amqp://xvjvsrrc:VbuL1atClKt7zVNQha0bnnScbNvGiqgb@moose.rmq.cloudamqp.com/xvjvsrrc");
RabbitMQClient client = RabbitMQClient.create(vertx, config);

或者,你也可以手动指定单个参数

RabbitMQOptions config = new RabbitMQOptions();
// Each parameter is optional
// The default parameter with be used if the parameter is not set
config.setUser("user1");
config.setPassword("password1");
config.setHost("localhost");
config.setPort(5672);
config.setVirtualHost("vhost1");
config.setConnectionTimeout(6000); // in milliseconds
config.setRequestedHeartbeat(60); // in seconds
config.setHandshakeTimeout(6000); // in milliseconds
config.setRequestedChannelMax(5);
config.setNetworkRecoveryInterval(500); // in milliseconds
config.setAutomaticRecoveryEnabled(true);

RabbitMQClient client = RabbitMQClient.create(vertx, config);

你可以设置多个连接地址到集群

RabbitMQOptions config = new RabbitMQOptions();
config.setUser("user1");
config.setPassword("password1");
config.setVirtualHost("vhost1");

config.setAddresses(Arrays.asList(Address.parseAddresses("firstHost,secondHost:5672")));

RabbitMQClient client = RabbitMQClient.create(vertx, config);

声明交换机

你可以将配置参数传递给 RabbitMQ 的 exchangeDeclare 方法

JsonObject config = new JsonObject();

config.put("x-dead-letter-exchange", "my.deadletter.exchange");
config.put("alternate-exchange", "my.alternate.exchange");
// ...
client.exchangeDeclare("my.exchange", "fanout", true, false, config, onResult -> {
  if (onResult.succeeded()) {
    System.out.println("Exchange successfully declared with config");
  } else {
    onResult.cause().printStackTrace();
  }
});

使用参数声明队列

你可以将配置参数传递给 RabbitMQ 的 queueDeclare 方法

JsonObject config = new JsonObject();
config.put("x-message-ttl", 10_000L);

client.queueDeclare("my-queue", true, false, true, config, queueResult -> {
  if (queueResult.succeeded()) {
    System.out.println("Queue declared!");
  } else {
    System.err.println("Queue failed to be declared!");
    queueResult.cause().printStackTrace();
  }
}

操作

https://vertx.io/docs/vertx-rabbitmq-client/java/#_operations

相关文章

网友评论

      本文标题:Vert.x RabbitMQ 中文文档

      本文链接:https://www.haomeiwen.com/subject/aqteectx.html