工作原理
上面的网站详细的描述了整个框架。建议没接触过RabbitMQ的同学先看看。了解原理后,就直接看下面的代码吧。
生产者
由于后台缘故,这里不需要exchange。想要看完整的流程的同学可以去看这篇文章。
注意要在子线程中运行
ConnectionFactory factory = new ConnectionFactory(); factory.setHost(HOST);//ip地址 factory.setPort(PORT);//端口号 factory.setUsername("test"); factory.setPassword("test"); //创建一个新连接 Connection connection = factory.newConnection(); //创建一个通道 Channel channel = connection.createChannel(); //声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //发送消息 channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8")); //消息发送完成后,需要关闭通道和连接 channel.close(); connection.close();
消费者
ConnectionFactory factory = new ConnectionFactory(); factory.setHost(HOST); factory.setPort(PORT); factory.setUsername("test"); factory.setPassword("test"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); //声明一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println("RecvLogsTopic1 [x] Received '" + envelope.getRoutingKey() + "':'" + message + "'"); } }; channel.basicConsume(QUEUE_NAME, true, consumer);
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。