pom
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.5</version>
</dependency>
Sender
import java
.util
.HashMap
;
import java
.util
.Map
;
import com
.rabbitmq
.client
.AMQP
;
import com
.rabbitmq
.client
.Channel
;
import com
.rabbitmq
.client
.Connection
;
import com
.rabbitmq
.client
.ConnectionFactory
;
public class Sender {
public static void main(String
[] args
) throws Exception
{
ConnectionFactory connectionFactory
= new ConnectionFactory();
connectionFactory
.setHost("127.0.0.1");
connectionFactory
.setPort(5672);
connectionFactory
.setVirtualHost("/");
Connection connection
= connectionFactory
.newConnection();
Channel channel
= connection
.createChannel();
String queueName
= "test001";
channel
.queueDeclare(queueName
, false, false, false, null
);
Map
<String, Object> headers
= new HashMap<String, Object>();
AMQP
.BasicProperties props
= new AMQP.BasicProperties.Builder()
.deliveryMode(2)
.contentEncoding("UTF-8")
.headers(headers
).build();
for(int i
= 0; i
< 5;i
++) {
String msg
= "Hello World RabbitMQ " + i
;
channel
.basicPublish("", queueName
, props
, msg
.getBytes());
}
channel
.close();
connection
.close();
}
}
Receiver
import com
.rabbitmq
.client
.Channel
;
import com
.rabbitmq
.client
.Connection
;
import com
.rabbitmq
.client
.ConnectionFactory
;
import com
.rabbitmq
.client
.QueueingConsumer
;
import com
.rabbitmq
.client
.QueueingConsumer
.Delivery
;
public class Receiver {
public static void main(String
[] args
) throws Exception
{
ConnectionFactory connectionFactory
= new ConnectionFactory() ;
connectionFactory
.setHost("127.0.0.1");
connectionFactory
.setPort(5672);
connectionFactory
.setVirtualHost("/");
connectionFactory
.setAutomaticRecoveryEnabled(true);
connectionFactory
.setNetworkRecoveryInterval(3000);
Connection connection
= connectionFactory
.newConnection();
Channel channel
= connection
.createChannel();
String queueName
= "test001";
channel
.queueDeclare(queueName
, false, false, false, null
);
QueueingConsumer consumer
= new QueueingConsumer(channel
);
channel
.basicConsume(queueName
, true, consumer
);
while(true){
Delivery delivery
= consumer
.nextDelivery();
String msg
= new String(delivery
.getBody());
System
.out
.println("收到消息:" + msg
);
}
}
}
我们可以试着run一下Sender,再run一下Receiver,可以在控制台看到发送的5条消息