消息生产端
import com.example.springdemo.utils.RabbitUtils;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeoutException;
public class RabbitProduct {
public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
Connection connection = RabbitUtils.getConnection();
AMQP.BasicProperties.Builder properties = MessageProperties.MINIMAL_BASIC.builder();
// contentType:消息的内容类型,如:text/plain
// contentEncoding:消息内容编码
// headers:设置消息的header,类型为Map<String,Object>
// deliveryMode:1(nopersistent)非持久化,2(persistent)持久化
// priority:消息的优先级
// correlationId:关联ID
// replyTo:用于指定回复的队列的名称
// expiration:消息的失效时间
// messageId:消息ID
// timestamp:消息的时间戳
// type:类型
// userId:用户ID
// appId:应用程序ID
// custerId:集群ID
properties.contentType("text/plain");
properties.deliveryMode(2);
Channel channel = connection.createChannel();
String msg = "hello jack ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for(int i=0;i<10000;i++){
String temp = msg+simpleDateFormat.format(new Date());
channel.basicPublish("exAim","aimRout",properties.build(),temp.getBytes("UTF-8"));
System.out.println("product:"+temp);
Thread.sleep(500);
}
channel.close();
connection.close();
}
}
消息消费端
import com.example.springdemo.utils.RabbitUtils;
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class RabbitCustmer {
public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
Connection connection = RabbitUtils.getConnection();
Channel channel = connection.createChannel();
Consumer consumer = new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
String msg = new String(body);
System.out.println("consumer:"+msg);
System.out.println("consumerTag:"+consumerTag);
System.out.println("properties.getContentType:"+properties.getContentType());
}
};
channel.basicConsume("aimQueue",true,consumer);
// channel.close();
// connection.close();
}
}
工具类RabbitUtils
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class RabbitUtils {
public static Connection getConnection() throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("127.0.0.1");
factory.setPort(5672);
factory.setVirtualHost("aim");
factory.setUsername("jack");
factory.setPassword("111111");
Connection connection = factory.newConnection();
return connection;
}
}