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条)