pom
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.9.0</version>
</dependency>
生产者
public class App
{
public static void main( String[] args )
{
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(" ");
factory.setPort( );
factory.setUsername(" ");
factory.setPassword(" ");
try (Connection connection = factory.newConnection();
Channel channel = connection.createChannel()) {
channel.queueDeclare("nihao",false,false,false,null);
String message = "世界你好!";
channel.basicPublish("","nihao",null,message.getBytes());
} catch (TimeoutException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
消费者
package org.example;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
/**
* @author nier
* @create 2020-08-18 23:56
*/
public class Consumer {
public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost();
factory.setPort();
factory.setUsername();
factory.setPassword();
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
/**
* 参数1 队列名称
* 参数2 是否持久化
* 参数3 是否独占(当前连接)
* 参数4 消费后是否自动删除
* 参数5 其他配置
*/
channel.queueDeclare("nihao", false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" [x] Received '" + message + "'");
};
/**
* @param queue队列名称
* @param autoAck如果服务器应考虑消息,则为true
* @param 交付后确认; 如果服务器应该期望则返回false
* @param deliveryCallback传递消息时的回调
* @param cancelCallback取消使用方时的回调
* @return 返回服务器生成的consumerTag
*/
channel.basicConsume("nihao", true, deliverCallback, consumerTag -> { });
}
}
网友评论