//创建MQ连接工厂对象 ConnectionFactory connectionFactory = new ConnectionFactory(); //设置连接RabbitMQ主机 connectionFactory.setHost("192.168.153.138"); //设置端口号 connectionFactory.setPort(5672); //设置连接哪个虚拟主机 connectionFactory.setVirtualHost("/ems"); //设置访问虚拟主机用户名密码 connectionFactory.setUsername("ems"); connectionFactory.setPassword("123"); //获取连接对象 Connection connection = connectionFactory.newConnection(); //获取连接中通道 Channel channel = connection.createChannel(); //通道绑定对应的消息队列 //参数1:队列名称 如果队列不存在自动创建 //参数2:用来定义队列是否要持久化 true 持久化 false 不持久化 //参数3:是否独占队列 true 独占 false 不独占 //参数4:是否在消费后自动删除队列 true 自动删除 false 不自动删除 //参数5:额外参数 channel.queueDeclare("hello", false, false, false, null); //参数1:交换机 //参数2:队列名称 //参数3:传递消息额外设置 //参数4:消息具体内容 channel.basicPublish("", "hello", null, "hello rabbitmq".getBytes()); channel.close(); connection.close();
消费者消费
//创建MQ连接工厂对象 ConnectionFactory connectionFactory = new ConnectionFactory(); //设置连接RabbitMQ主机 connectionFactory.setHost("192.168.153.138"); //设置端口号 connectionFactory.setPort(5672); //设置连接哪个虚拟主机 connectionFactory.setVirtualHost("/ems"); //设置访问虚拟主机用户名密码 connectionFactory.setUsername("ems"); connectionFactory.setPassword("123"); //获取连接对象 Connection connection = connectionFactory.newConnection(); //获取连接中通道 Channel channel = connection.createChannel(); //通道绑定对应的消息队列 //参数1:队列名称 如果队列不存在自动创建 //参数2:用来定义队列是否要持久化 true 持久化 false 不持久化 //参数3:是否独占队列 true 独占 false 不独占 //参数4:是否在消费后自动删除队列 true 自动删除 false 不自动删除 //参数5:额外参数 channel.queueDeclare("hello", false, false, false, null); //消费者 //参数1:消费哪个队列的消息 队列名称 //参数2:开始消息的自动确认机制 //参数3:消费时的回调接口 channel.basicConsume("hello", true, new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { System.out.println("new String(body) = " + new String(body)); } });
原文:https://www.cnblogs.com/teles/p/12727744.html