> 文章列表 > 简单的RabbitMq生产与消费

简单的RabbitMq生产与消费

简单的RabbitMq生产与消费

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交换机