其他分享
首页 > 其他分享> > RabbitMQ入门代码

RabbitMQ入门代码

作者:互联网

RabbitMQ入门代码

这里只做简单的一个案例,用main方法进行测试

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Procuder {

	
	public static void main(String[] args) throws Exception {
		//1 创建一个ConnectionFactory, 并进行配置
		ConnectionFactory connectionFactory = new ConnectionFactory();
		//设置ip
		connectionFactory.setHost("127.0.0.1");
		//设置端口
		connectionFactory.setPort(5672);
		//设置虚拟主机路径
		connectionFactory.setVirtualHost("/");
		
		
		
		//2 通过连接工厂创建连接
		Connection connection = connectionFactory.newConnection();
		
		//3 通过connection创建一个Channel
		Channel channel = connection.createChannel();
		
		//4 通过Channel发送数据
		String msg = "Hello RabbitMQ!";
		/**
		* 1 exchange   交换机名称    如果不指定exchange则会默认使用AMQP default交换机,并根据routingKey去找,如果找到完全匹配的则会路由过去,如果找不到则不会路由过去,这条消息则会失败
		
		* 2 routingKey  路由规则
		
		* 3、props 消息的附加属性
		
		* 4、body  消息实体
		
		*/
		channel.basicPublish("", "test001", null, msg.getBytes());
		

		//5 记得要关闭相关的连接 由小到大的原则
		channel.close();
		connection.close();
	}
}
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Envelope;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.QueueingConsumer.Delivery;

public class Consumer {

	public static void main(String[] args) throws Exception {
		
		//1 创建一个ConnectionFactory, 并进行配置
		ConnectionFactory connectionFactory = new ConnectionFactory();
		//设置ip
		connectionFactory.setHost("127.0.0.1");
		//设置端口
		connectionFactory.setPort(5672);
		//设置虚拟主机路径
		connectionFactory.setVirtualHost("/");
		
		
		
		//2 通过连接工厂创建连接
		Connection connection = connectionFactory.newConnection();
		
		//3 通过connection创建一个Channel
		Channel channel = connection.createChannel();
		
		//4 声明(创建)一个队列
		String queueName = "test001";
		/**
		* 1、queueName 队列名字
		* 2、durable  是否持久化  如果设置为true 则表示持久化  就算服务器重启此队列也不会消失
		* 3、exclusive 表示独占  设置为true后 则表示此队列只有这一个channel能够监听,应用于顺序消费的场景
		* 4、autoDelete  自动删除 设置成ture后,如果队列长时间没有被使用,则会自动删除
		* 5、扩展参数
		*/
		channel.queueDeclare(queueName, true, false, false, null);
		
		//5 创建消费者  建立在channel之上的消费者
		QueueingConsumer queueingConsumer = new QueueingConsumer(channel);
		
		//6 设置Channel
		/**
		*1、queueName 监听(消费)的队列名字  
		*2、autoAck  是否自动签收  如果设置为true,表示自动签收,表示消息已收到,也可以手工设置ack
		*3、callback  具体的消费者对象
		*/
		channel.basicConsume(queueName, true, queueingConsumer);
		
		while(true){
			//7 获取消息 如果没有消息则一直阻断在这,nextDelivery(long time)方法则是有超时时间,在时间内如果没有消息则会放行
			Delivery delivery = queueingConsumer.nextDelivery();
			String msg = new String(delivery.getBody());
			System.err.println("消费端: " + msg);
			//
			//Envelope envelope = delivery.getEnvelope();
		}
		
	}
}

一般是先启动Consumer,这样会创建一个队列然后Procuder将消息推送到队列里

标签:connectionFactory,入门,代码,RabbitMQ,client,rabbitmq,import,com,channel
来源: https://blog.csdn.net/qq_41681399/article/details/118456414