首先要引入 rabbitmq 官方 client
rabbitmq-java-client-bin-3.6.3.jar
1. producer
package com.stone.mq;
import java.io.IOException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Producer {
private static String HOST = "123.56.99.80";
private static String USERNAME = "admin";
private static String PASSWORD = "111111";
private static String QUEUE_NAME = "queueA";
public static void main(String[] args) {
publish();
}
private static void publish(){
try {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(HOST);
factory.setUsername(USERNAME);
factory.setPassword(PASSWORD);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String msg = "msg test !!!";
for(int i=0;i<10;i++){
msg = i+" : msg test !!!";
channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());
System.out.println("publish msg " + msg);
}
channel.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
console
publish msg 0 : msg test !!!
publish msg 1 : msg test !!!
publish msg 2 : msg test !!!
publish msg 3 : msg test !!!
publish msg 4 : msg test !!!
publish msg 5 : msg test !!!
publish msg 6 : msg test !!!
publish msg 7 : msg test !!!
publish msg 8 : msg test !!!
publish msg 9 : msg test !!!
rabbitmq web
2. consumer
package com.stone.mq;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
public class Consumer {
private static String HOST = "123.56.99.80";
private static String USERNAME = "admin";
private static String PASSWORD = "111111";
private static String QUEUE_NAME = "queueA";
public static void main(String[] argv) {
revieve();
}
private static void revieve() {
try {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(HOST);
factory.setUsername(USERNAME);
factory.setPassword(PASSWORD);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
QueueingConsumer consumer = new QueueingConsumer(channel);
//消费消息
channel.basicConsume(QUEUE_NAME, true, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String msg = new String(delivery.getBody());
System.out.println("recieve " + msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
recieve 0 : msg test !!!
recieve 1 : msg test !!!
recieve 2 : msg test !!!
recieve 3 : msg test !!!
recieve 4 : msg test !!!
recieve 5 : msg test !!!
recieve 6 : msg test !!!
recieve 7 : msg test !!!
recieve 8 : msg test !!!
recieve 9 : msg test !!!
rabbitmq
至此一个简单的java rabbitmq的调用完成