rabbitmq常用API
时间: 2023-10-06 19:13:33 浏览: 82
1. 声明队列:queueDeclare()
2. 发布消息:basicPublish()
3. 消费消息:basicConsume()
4. 确认消息:basicAck()
5. 拒绝消息:basicReject()
6. 取消消费者订阅:basicCancel()
7. 绑定交换机和队列:queueBind()
8. 申明交换机:exchangeDeclare()
9. 删除队列:queueDelete()
10. 删除交换机:exchangeDelete()
相关问题
java rabbitmq常用API
以下是 RabbitMQ 常用的 Java API:
1. ConnectionFactory:用于创建 RabbitMQ 连接的工厂类。
2. Connection:表示与 RabbitMQ 的连接,可以创建一个或多个 Channel。
3. Channel:表示与 RabbitMQ 的通信通道,用于发送和接收消息。
4. QueueDeclareOk:表示队列声明的结果,包括队列名称、消息数量等信息。
5. BasicPublish:用于将消息发送到指定的 Exchange。
6. BasicConsume:用于从指定的队列中消费消息。
7. DeliverCallback:用于处理收到的消息。
8. Consumer:表示消息的消费者,可以注册到特定的队列中,处理该队列中的消息。
9. ExchangeDeclareOk:表示 Exchange 声明的结果,包括 Exchange 名称、类型等信息。
10. Binding:表示 Exchange 和 Queue 的绑定关系。
11. BasicAck:用于确认一条消息已经被消费。
12. BasicNack:用于拒绝一条消息,并可以选择是否重新入队列。
13. BasicReject:用于拒绝一条消息,并将其从队列中删除。
14. ConfirmCallback:用于处理消息投递的确认结果。
帮我写个rabbitmq 常用的java工具类
好的,下面是一个 RabbitMQ 常用的 Java 工具类示例:
```java
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class RabbitMQUtil {
// RabbitMQ 服务器地址
private static final String HOST = "localhost";
// RabbitMQ 服务器端口号
private static final int PORT = 5672;
// RabbitMQ 用户名
private static final String USERNAME = "guest";
// RabbitMQ 密码
private static final String PASSWORD = "guest";
// RabbitMQ 默认交换机名称
private static final String DEFAULT_EXCHANGE_NAME = "";
// RabbitMQ 默认队列名称
private static final String DEFAULT_QUEUE_NAME = "default_queue";
private static ConnectionFactory connectionFactory = new ConnectionFactory();
static {
// 设置 RabbitMQ 服务器地址、端口号、用户名和密码
connectionFactory.setHost(HOST);
connectionFactory.setPort(PORT);
connectionFactory.setUsername(USERNAME);
connectionFactory.setPassword(PASSWORD);
}
/**
* 发送消息到指定队列
*
* @param queueName 队列名称
* @param message 消息内容
*/
public static void sendMessage(String queueName, String message) throws IOException, TimeoutException {
Connection connection = connectionFactory.newConnection();
Channel channel = connection.createChannel();
// 声明队列
channel.queueDeclare(queueName, true, false, false, null);
// 发送消息到队列中
channel.basicPublish(DEFAULT_EXCHANGE_NAME, queueName, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());
channel.close();
connection.close();
}
/**
* 从指定队列中接收消息
*
* @param queueName 队列名称
* @return 接收到的消息内容
*/
public static String receiveMessage(String queueName) throws IOException, TimeoutException {
Connection connection = connectionFactory.newConnection();
Channel channel = connection.createChannel();
// 声明队列
channel.queueDeclare(queueName, true, false, false, null);
// 从队列中接收消息
channel.basicQos(1);
String message = null;
// 开启手动确认模式
channel.basicConsume(queueName, false, (consumerTag, delivery) -> {
message = new String(delivery.getBody(), "UTF-8");
// 手动确认消息已被接收
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
}, consumerTag -> {
});
channel.close();
connection.close();
return message;
}
/**
* 删除指定队列
*
* @param queueName 队列名称
*/
public static void deleteQueue(String queueName) throws IOException, TimeoutException {
Connection connection = connectionFactory.newConnection();
Channel channel = connection.createChannel();
// 删除队列
channel.queueDelete(queueName);
channel.close();
connection.close();
}
}
```
上面这个工具类提供了 RabbitMQ 常用的三个操作:发送消息、接收消息和删除队列。其中,发送消息和删除队列都比较简单,主要是调用 RabbitMQ 的 API 完成相应操作。而接收消息则需要一些特殊的设置,比如手动确认消息已被接收等。需要注意的是,在使用时需要先安装 RabbitMQ 服务器,并在该服务器上创建相应的队列。
阅读全文