1.在配置文件中配置mq的url,端口号,用户名,密码
2.读取配置文件,并获取mq的connection
import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;
public static Connection getConnection() { if(connection == null) { ConnectionFactory connectionFactory = new ConnectionFactory(); connectionFactory.setHost(RABBIT_HOST); connectionFactory.setPort(Integer.parseInt(RABBIT_PORT)); connectionFactory.setUsername(RABBIT_USERNAME); connectionFactory.setPassword(RABBIT_PASSWORD); try { connection = connectionFactory.newConnection(); } catch (IOException e) { e.printStackTrace(); } catch (TimeoutException e) { e.printStackTrace(); } } return connection; }
3.通过connection换取channel,并生产和消费信息
Channel channel = null; try { //获取连接 Connection connection = MqConnectionUtil.getConnection(); //创建通道 channel = connection.createChannel(); /* * 声明(创建)队列 * 参数1:队列名称 * 参数2:为true时server重启队列不会消失 * 参数3:队列是否是独占的,如果为true只能被一个connection使用,其他连接建立时会抛出异常 * 参数4:队列不再使用时是否自动删除(没有连接,并且没有未处理的消息) * 参数5:建立队列时的其他参数 */ channel.queueDeclare(queueName, true, false, false, null); channel.basicPublish("", queueName, null, message.getBytes(StandardCharsets.UTF_8)); 生产消息 DeliverCallback deliverCallback = (consumerTag, bakMessage)->{ System.out.println(new String(bakMessage.getBody())); }; CancelCallback cancelCallback = consumerTag ->{ System.out.println("消息消费被中断"); }; channel.basicConsume(queueName,true,deliverCallback,cancelCallback);
消费信息
简单案例,并没有使用exchange交换机