
mq工具类com.rabbitmq amqp-client5.14.0 commons-io commons-io2.6
public class RabbitUtil {
public static Channel getConn() throws Exception {
ConnectionFactory cf = new ConnectionFactory();
cf.setHost("localhost");
cf.setUsername("guest");
cf.setPassword("guest");
return cf.newConnection().createChannel();
}
}
通道获取与关闭
获取
Channel channel = RabbitUtil.getConn();
关闭
channel.getConnection().close();生产者
//获取通道
Channel channel = RabbitUtil.getConn();
//声明队列
channel.queueDeclare("q", false, false, false, null);
//简单发送:1-10
for (int i = 1; i <= 10; i++) {
channel.basicPublish("", "q", null, (i + "").getBytes());
}
//关闭
channel.getConnection().close();
API
queueDeclare
- 队列名
- 是否持久化
- 是否多消费者
- 是否自动删除
- 其他参数
basicPublish
- 目标交换机
- 路由键 || 队列名
- 其他参数
- 消息数据
发送了十条数据
//获取通道
Channel channel = RabbitUtil.getConn();
//声明回调
DeliverCallback deliver = (consumerTag, message) -> {
System.out.println(new String(message.getBody()));
};
CancelCallback cancel = consumerTag -> {
System.out.println("取消了");
};
//消费消息
channel.basicConsume("q", true, deliver, cancel);
API
basicConsume
- 队列名称
- 是否自动回复
- 接收回调
- 取消回调
控制台输出了,队列中的数据也被消费一空。
开启IDEA运行设置
一个生产者,两个消费者:
不难猜到,默认是轮询
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)